以前在使用docker的时候,对于docker-machine的理解有一些误解(以前一直觉得docker-machine和docker-engine等价的,只不过是在window或者mac平台上的docker-engine的别名罢了,汗~~~); 今天正好利用这个机会来好好的理一理。docker
登陆官网,搜索到 docker-machine, 官网对于它的定义接单来讲就是:一个在“本地”或者“云平台”上 管理 docker-engine 的工具。(截图来自官网)ssh
正如上述,docker-machine 是在docker-host(物理机器)上面管理 docker-engine的工具,因此它有属于它本身的一组CLI(command line interface)。工具
下面,咱们就来看看,如何在本地使用docker-machine.测试
因为个人本本比较"老",因此只能在win7上面经过virtual box来跑docker. url
当咱们安装完成之后,在默认状况下,docker-machine 会自动创建一个名为 “default”的 machine/engine。 如图spa
咱们再来查看一下当前的docker-machine 列表rest
$ docker-machine ls
能够看到,在咱们的列表中有一个defaut, 如今再来建立一个新的 docker-machine/engine (default2):code
docker-machine create --driver virtualbox default2
完成以后,咱们能够看到,如今咱们有了两个docker-machine,他们分别运行着各自的 docker-engineblog
接下来,咱们来检查 docker-engine : default2 的环境ip
$ docker-machine env default2
经过docker-machine 链接到docker - engine (default2)
$ eval $("C:\Program Files\Docker Toolbox\docker-machine.exe" env default2)
接下来,让咱们使用docker CLI 来跑一个container,测试一下
$ docker run busybox echo hello world
OK,一切正常!!这样咱们就在“本机”环境下建立了两个docker-machine,分别运行着各自的docker-engine :)
$ docker-machine config <docker-machine name> $ docker-machine env <docker-machine name> $ docker-machine inspect <docer-machine name> $ docker-machine ip <docker-machine name> $ docker-machine kill <docker-machine name> $ docker-machine provision <docker-machine name>` $ docker-machine regenerate-certs <docker-machine name> $ docker-machine restart <docker-machine name> $ docker-machine ssh <docker-machine name> $ docker-machine start <docker-machine name> $ docker-machine status <docker-machine name> $ docker-machine stop <docker-machine name> $ docker-machine upgrade <docker-machine name> $ docker-machine url <docker-machine name>