Docker Machine的作用
- docker目前不支持mac跟win,如果想在這兩個平臺上運行,就要安裝這個工具。
- docker在不同的linux上得安裝方法不一樣,通過這個工具可以提供統一的安裝方法。
Docker Machine與Docker Engine的區別
engine.png
如上圖所示,一般我們談到docker的時候指的是docker engine。它包含三個部分。CLI(解析命令行的工具)Server(一個restful的服務區)RestApi(CLI與Server進行通訊的接口)
machine.png
Docker 的結構如上圖所示,包括Docker Machine自己的客戶端跟docker的客戶端,還有Rest Api。這樣就可以用他們跟不同的主機上的docker進行通信了。從而起到管理多個docker Engine的效果。
Mac 安裝
mac安裝Docker Machine要使用Docker Toolbox,其中包括:
- Docker Machine binary
- Docker Engine binary
- Docker Compose binary
- Kitematic Docker 的GUI
- 一個shell格式的預配置文件
- VirtualBox
安裝前需要知道的內容
如上圖所示,在Linux上,跟docker的客戶端,守護進程跟容器運行在同意太物理機器上。
但是在mac上,docker后臺進程運行在一個叫做default的Linux虛擬機上。
docker的host address是這臺虛擬機的地址。當你使用docker-machine啟動這臺虛擬機的時候,這臺虛擬機會被分配一個ip地址。當運行一個docker容器的時候,容器的port會跟這臺虛擬機進行綁定。
啟動一個本地容器
- 創建一個新的virtual machine
- 設定環境到新的VM
- 使用docker client創建,加載和管理容器
具體命令如下:
docker-machine create --driver virtualbox default
Creating VirtualBox VM...
Creating SSH key...
Starting VirtualBox VM...
Starting VM...
To see how to connect Docker to this machine, run: docker-machine env default
上面的命令在VirtualBox中創建了一個新的 default VM 。
同時也創建了一個份配置,在~/.docker/machine/machines/default路徑下。
$ eval "$(docker-machine env default)"
上面的命令為你正在操作的shell設置環境變量。每次打開一個shell的時候都需要進行這個操作。