以前在使用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>