23.4 Machine命令
每个命令都带有一系列参数,可以通过如下命令来查看用法:
- docker-machine <COMMAND> -h
命令参见表23-1。
表23-1 Machine命令列表

下面具体介绍部分命令的用法。
1.active
格式为:docker-machine active[arg…]
查看当前激活状态的Docker主机。激活状态意味着当前的DOCKER_HOST环境变量指向该主机。例如下面命令列出当前激活主机为dev主机:
- $ docker-machine ls
- NAME ACTIVE DRIVER STATE URL
- dev virtualbox Running tcp://192.168.56.102:2376
- staging * digitalocean Running tcp://104.236.60.101:2376
- $ echo $DOCKER_HOST
- tcp://104.236.60.101:2376
- $ docker-machine active
- staging
2.config
格式为:docker-machine config[OPTIONS][arg…]
查看到激活Docker主机的连接信息。例如下面显示dev主机的连接信息:
- $ docker-machine config dev
- --tlsverify --tlscacert="/home/docker_user/.docker/machines/dev/ca.pem" --tlscert="
- /home/docker_user/.docker/machines/dev/cert.pem" --tlskey="/home/docker_user
- /.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主机的虚拟机镜像:
- $ docker-machine create -d virtualbox \
- --engine-storage-driver overlay \
- --engine-label name=testmachine \
- --engine-label year=2015 \
- --engine-opt dns=8.8.8.8 \
- --engine-env HTTP_PROXY=http://proxy.com:3128 \
- --engine-insecure-registry registry.private.com \
- 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主机所需要的环境变量:
- $ docker-machine env default
- export DOCKER_TLS_VERIFY="1"
- export DOCKER_HOST="tcp://192.168.56.102:2376"
- export DOCKER_CERT_PATH="/home/docker_user/.docker/machine/certs"
- export DOCKER_MACHINE_NAME="default"
5.inspect
格式为:docker-machine inspect[OPTIONS][arg…]
以json格式输出指定Docker主机的详细信息。
例如:
- $ docker-machine inspect default
- {
- "DriverName": "virtualbox",
- "Driver": {
- "MachineName": "docker-host-128be8d287b2028316c0ad5714b90bcfc11f998056
- f2f790f7c1f43f3d1e6eda",
- "SSHPort": 22,
- "Memory": 1024,
- "DiskSize": 20000,
- "Boot2DockerURL": "",
- "IPAddress": "192.168.56.102"
- },
- ...
- }
6.ip
获取指定Docker主机地址。
例如:
- $ docker-machine ip default
- 192.168.56.102
7.kill
直接杀死指定的Docker主机。
指定Docker主机会强行停止。
8.ls
列出所有管理的主机。
格式为:docker-machine ls[OPTIONS][arg…]
例如:
- $ docker-machine ls
- NAME ACTIVE DRIVER STATE URL
- default - virtualbox Stopped
- test0 - virtualbox Running tcp://192.168.56.105:2376
- test1 - virtualbox Running tcp://192.168.56.106:2376
- test2 * virtualbox Running tcp://192.168.56.107:2376
可以通过—filter来只输出某些Docker主机,支持过滤器包括名称正则表达式、驱动类型、Swarm管理节点名称、状态等。
例如:
- $ docker-machine ls --filter state=Stopped
- NAME ACTIVE DRIVER STATE URL SWARM
- default - virtualbox Stopped
支持选项包括
·—quiet,-q减少无关输出信息;
·—filter[—filter option—filter option]只输出符合过滤条件主机。
