23.4 Machine命令

每个命令都带有一系列参数,可以通过如下命令来查看用法:


  1. docker-machine <COMMAND> -h

命令参见表23-1。

表23-1 Machine命令列表

23.4 Machine命令 - 图1

下面具体介绍部分命令的用法。

1.active

格式为:docker-machine active[arg…]

查看当前激活状态的Docker主机。激活状态意味着当前的DOCKER_HOST环境变量指向该主机。例如下面命令列出当前激活主机为dev主机:


  1. $ docker-machine ls
  2. NAME ACTIVE DRIVER STATE URL
  3. dev virtualbox Running tcp://192.168.56.102:2376
  4. staging * digitalocean Running tcp://104.236.60.101:2376
  5. $ echo $DOCKER_HOST
  6. tcp://104.236.60.101:2376
  7. $ docker-machine active
  8. staging

2.config

格式为:docker-machine config[OPTIONS][arg…]

查看到激活Docker主机的连接信息。例如下面显示dev主机的连接信息:


  1. $ docker-machine config dev
  2. --tlsverify --tlscacert="/home/docker_user/.docker/machines/dev/ca.pem" --tlscert="
  3. /home/docker_user/.docker/machines/dev/cert.pem" --tlskey="/home/docker_user
  4. /.docker/machines/dev/key.pem" -H tcp://192.168.56.102:2376

3.create

格式为:docker-machine create[OPTIONS][arg…]

创建一个Docker主机。

选项包括:

·—driver,-d"none"指定驱动类型;

·—engine-install-url"https://get.docker.com"配置Dokcer主机时候的安装URL;

·—engine-opt option以键值对格式指定所创建Docker引擎的参数;

·—engine-insecure-registry option以键值对格式指定所创建Docker引擎允许访问的不支持认证的注册仓库服务;

·—engine-registry-mirror option指定使用注册仓库镜像;

·—engine-label option为所创建的Docker引擎添加标签;

·—engine-storage-driver存储后端驱动类型;

·—engine-env option指定环境变量;

·—swarm指定使用Swarm;

·—swarm-image"swarm:latest"使用Swarm时候采用的镜像;

·—swarm-master配置机器作为Swarm集群的master节点;

·—swarm-discovery Swarm集群的服务发现机制参数;

·—swarm-strategy"spread"Swarm默认调度策略;

·—swarm-opt option任意传递给Swarm的参数;

·—swarm-host"tcp://0.0.0.0:3376"指定地址将监听Swarm master节点请求;

·—swarm-addr从指定地址发送广播加入Swarm集群服务。

例如,通过如下命令可以创建一个Docker主机的虚拟机镜像:


  1. $ docker-machine create -d virtualbox \
  2. --engine-storage-driver overlay \
  3. --engine-label name=testmachine \
  4. --engine-label year=2015 \
  5. --engine-opt dns=8.8.8.8 \
  6. --engine-env HTTP_PROXY=http://proxy.com:3128 \
  7. --engine-insecure-registry registry.private.com \
  8. mydockermachine

所创建Docker主机虚拟机中的Docker引擎将具有如下动能:

·使用overlay类型的存储驱动;

·带有name=testmachine和year=2015两个标签;

·引擎采用8.8.8.8作为默认DNS;

·环境变量中指定HTTP代理服务http://proxy.com:3128

·允许使用不带验证的注册仓库服务registry.private.com。

4.env

格式为:docker-machine env[OPTIONS][arg…]

显示连接到某个主机需要的环境变量。

例如,显示连接到default主机所需要的环境变量:


  1. $ docker-machine env default
  2. export DOCKER_TLS_VERIFY="1"
  3. export DOCKER_HOST="tcp://192.168.56.102:2376"
  4. export DOCKER_CERT_PATH="/home/docker_user/.docker/machine/certs"
  5. export DOCKER_MACHINE_NAME="default"

5.inspect

格式为:docker-machine inspect[OPTIONS][arg…]

以json格式输出指定Docker主机的详细信息。

例如:


  1. $ docker-machine inspect default
  2. {
  3. "DriverName": "virtualbox",
  4. "Driver": {
  5. "MachineName": "docker-host-128be8d287b2028316c0ad5714b90bcfc11f998056
  6. f2f790f7c1f43f3d1e6eda",
  7. "SSHPort": 22,
  8. "Memory": 1024,
  9. "DiskSize": 20000,
  10. "Boot2DockerURL": "",
  11. "IPAddress": "192.168.56.102"
  12. },
  13. ...
  14. }

6.ip

获取指定Docker主机地址。

例如:


  1. $ docker-machine ip default
  2. 192.168.56.102

7.kill

直接杀死指定的Docker主机。

指定Docker主机会强行停止。

8.ls

列出所有管理的主机。

格式为:docker-machine ls[OPTIONS][arg…]

例如:


  1. $ docker-machine ls
  2. NAME ACTIVE DRIVER STATE URL
  3. default - virtualbox Stopped
  4. test0 - virtualbox Running tcp://192.168.56.105:2376
  5. test1 - virtualbox Running tcp://192.168.56.106:2376
  6. test2 * virtualbox Running tcp://192.168.56.107:2376

可以通过—filter来只输出某些Docker主机,支持过滤器包括名称正则表达式、驱动类型、Swarm管理节点名称、状态等。

例如:


  1. $ docker-machine ls --filter state=Stopped
  2. NAME ACTIVE DRIVER STATE URL SWARM
  3. default - virtualbox Stopped

支持选项包括

·—quiet,-q减少无关输出信息;

·—filter[—filter option—filter option]只输出符合过滤条件主机。