Docker Machine
http://dockone.io/article/1485?utm_source=tuicool&utm_medium=referral
本地安裝與使用
Docker工具箱包括專門的工具來幫助開發人員構建現代分布式應用程序。該工具箱用於Windows和Mac系統安裝使用Docker Client, Machine, Compose and Kitematic。
Docker Toolbox(Windows版), 安裝指南-Windows版; Docker Toolbox(Mac版), 安裝指南-Mac版。
如果系統顯示一個用戶帳戶控制提示允許VirtualBox更改你的電腦。選擇Yes。接下來該終端做幾件事為你建立Docker工具箱。當它完成,終端顯示提示“$”。如下圖:
用鼠標點擊“$”旁邊激活該終端;
指令:
如果返回結果為
或與之類似的信息則說明Machine已成功安裝,否則,就需要自己下載Machine並安裝。
如果是在Windows上運行的git bash,安裝Docker Machine:
指令:
或者可以直接到 Docker Machine Release頁面下載安裝。如下圖:
如果是 OS X 或 Linux 安裝 Docker Machine:
指令:
查看Docker Machine是否安裝成功。
指令:
結果:
- 查看machine列表。
指令:
結果:
- 創建一個machine
指令:
結果:
再次查看machine列表,指令:
結果:
可以看到我們剛創建的“my-machine”已出現在 machine 的列表當中。
指令:
結果:
- 連接到machine的shell。
指令:
結果:
如果沒有任何錯誤提示說明連接該 machine 成功了,因為該 machine 已安裝了docker client,所以此時你可以執行 docker 的相關操作。如查看 Docker 版本
指令:
結果:
- 用 docker run 啟動一個容器驗證前面的安裝和設置沒有問題。
指令:
結果:
- 獲取指定 machine 的 ip
指令:
結果:
- 在容器中運行一個頁面服務器(Nginx)
指令:
結果:
- 訪問上面獲取到的 ip 和映射的端口號組成的網址,這里是192.168.99.104:9527
指令:
結果:
通過同樣的方法你可以創建和管理很多運行着 Docker 的本地 Machine(VMs);只需運行“docker-machine create”指令;而運行“docker-machine ls”則可以顯示所有的 machine 組成的列表。
停止指令:
啟動指令:
- 不指定machine的名稱進行操作
如果不指定 machine 的名稱進行操作,則操作的 machine 默認為名稱為 default 的 machine。如下圖:
docker-machine 的指令列表:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
除了名稱為 default 的 machine 之外,如果要執行上面的指令,您必須顯式地指定machine的名稱作為參數。
為了確保 Docker Client 自動配置在每個 shell 會話的開始,有些用戶喜歡在他們的 shell 配置文件中嵌入eval $(docker-machine env default)(例如“~/.bash_profile”文件)。然而,如果名稱為 default 的 machine 沒有運行上面方法將會失效。但是您可以配置您的系統,將名稱為 default 的 machine 設置為自動啟動。當然,你也可以通過替換下面的 default 來將其他 machine 設置為開機啟動。
下面介紹一下在OS X系統中如何配置
在“~/Library/LaunchAgents”文件夾下創建“com.docker.machine.default.plist”文件,編輯內容為:
更多信息請參考:
- 這里我們如果要在Windows上使用Docker Machine以及Docker Client,所以需要先下載、安裝。
Docker Toolbox(Windows版), 安裝指南-Windows版; Docker Toolbox(Mac版), 安裝指南-Mac版。
- 接下來我們以Windows為例,安裝完成后可以在桌面上看到如下三個圖標:

- 點擊運行“Docker Quickstart Terminal”來啟動一個Docker工具箱終端。
如果系統顯示一個用戶帳戶控制提示允許VirtualBox更改你的電腦。選擇Yes。接下來該終端做幾件事為你建立Docker工具箱。當它完成,終端顯示提示“$”。如下圖:

- 該終端運行一個特殊的bash環境而不是標准的Windows命令提示符。該bash環境正是Docker所要求的。
用鼠標點擊“$”旁邊激活該終端;
指令:
docker-machine --version
如果返回結果為
docker-machine.exe version 0.7.0, build a650a40
或與之類似的信息則說明Machine已成功安裝,否則,就需要自己下載Machine並安裝。
如果是在Windows上運行的git bash,安裝Docker Machine:
指令:
if [[ ! -d "$HOME/bin" ]]; then mkdir -p "$HOME/bin"; fi && \ curl -L https://github.com/docker/machine/releases/download/v0.7.0/docker-machine-Windows-x86_64.exe > "$HOME/bin/docker-machine.exe" && \ chmod +x "$HOME/bin/docker-machine.exe"
或者可以直接到 Docker Machine Release頁面下載安裝。如下圖:

如果是 OS X 或 Linux 安裝 Docker Machine:
指令:
curl -L https://github.com/docker/machine/releases/download/v0.7.0/docker-machine-`uname -s`-`uname -m` > /usr/local/bin/docker-machine && \ chmod +x /usr/local/bin/docker-machine
查看Docker Machine是否安裝成功。
指令:
docker-machine --version
結果:

- 查看machine列表。
指令:
docker-machine ls
結果:

- 創建一個machine
指令:
docker-machine create --driver virtualbox my-machine
結果:

再次查看machine列表,指令:
docker-machine ls
結果:

可以看到我們剛創建的“my-machine”已出現在 machine 的列表當中。
- 查看 machine 的環境變量的配置信息。
指令:
docker-machine env my-machine
結果:

- 連接到machine的shell。
指令:
eval "$(docker-machine env my-machine)"
結果:
如果沒有任何錯誤提示說明連接該 machine 成功了,因為該 machine 已安裝了docker client,所以此時你可以執行 docker 的相關操作。如查看 Docker 版本
指令:
docker --version
結果:

- 用 docker run 啟動一個容器驗證前面的安裝和設置沒有問題。
指令:
docker run busybox echo Hello Docker-Machine!
結果:

- 獲取指定 machine 的 ip
指令:
docker-machine ip my-machine
結果:
192.168.99.104
- 在容器中運行一個頁面服務器(Nginx)
指令:
docker run -d -p 9527:80 --name web-server nginx
結果:

- 訪問上面獲取到的 ip 和映射的端口號組成的網址,這里是192.168.99.104:9527
指令:
curl $(docker-machine ip my-machine):9527
結果:

通過同樣的方法你可以創建和管理很多運行着 Docker 的本地 Machine(VMs);只需運行“docker-machine create”指令;而運行“docker-machine ls”則可以顯示所有的 machine 組成的列表。
- 啟動和停止 machines
停止指令:
docker-machine stop my-machine
啟動指令:
docker-machine start my-machine
- 不指定machine的名稱進行操作
如果不指定 machine 的名稱進行操作,則操作的 machine 默認為名稱為 default 的 machine。如下圖:

docker-machine 的指令列表:
-
docker-machine config
-
docker-machine env
-
docker-machine inspect
-
docker-machine ip
-
docker-machine kill
-
docker-machine provision
-
docker-machine regenerate-certs
-
docker-machine restart
-
docker-machine ssh
-
docker-machine start
-
docker-machine status
-
docker-machine stop
-
docker-machine upgrade
-
docker-machine url
除了名稱為 default 的 machine 之外,如果要執行上面的指令,您必須顯式地指定machine的名稱作為參數。
- 開機啟動本地的machines
為了確保 Docker Client 自動配置在每個 shell 會話的開始,有些用戶喜歡在他們的 shell 配置文件中嵌入eval $(docker-machine env default)(例如“~/.bash_profile”文件)。然而,如果名稱為 default 的 machine 沒有運行上面方法將會失效。但是您可以配置您的系統,將名稱為 default 的 machine 設置為自動啟動。當然,你也可以通過替換下面的 default 來將其他 machine 設置為開機啟動。
下面介紹一下在OS X系統中如何配置
在“~/Library/LaunchAgents”文件夾下創建“com.docker.machine.default.plist”文件,編輯內容為:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>EnvironmentVariables</key> <dict> <key>PATH</key> <string>/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin</string> </dict> <key>Label</key> <string>com.docker.machine.default</string> <key>ProgramArguments</key> <array> <string>/usr/local/bin/docker-machine</string> <string>start</string> <string>default</string> </array> <key>RunAtLoad</key> <true/> </dict> </plist>
更多信息請參考: