內容摘要
docker-machine程序安裝與卸載
創建docker-machine
docker-machine常用命令
前面章節我們講解的都是單主機環境下的容器管理,從本節開始,我們的學習將會全部在多主機環境下。docker專門提供了多主機管理工具docker machine。
安裝docker-machine程序
安裝前請將容器環境置於最初狀態,並將主機名改為docker。
參考鏈接:
官網:https://docs.docker.com/machine/install-machine/
github:https://github.com/docker/machine/releases
目前github最新發行版本是0.16.2,我們安裝0.16.0版本。
官方提供的安裝命令如下:
base=https://github.com/docker/machine/releases/download/v0.16.0 && curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/tmp/docker-machine && sudo mv /tmp/docker-machine /usr/local/bin/docker-machine && chmod +x /usr/local/bin/docker-machine
對於我們的容器環境,uname信息如下:
上面的命令先將docker machine下載到/tmp/docker-machine下,之後將下載的文件移動到/usr/local/bin/docker-machine,最後改變文件執行權限。
在名為docker的主機上運行上述命令,安裝docker-machine:
命令執行成功。
下面檢查下docker machine是否安裝成功:
運行 docker-machine version 命令,結果如下:
可以看到就是我們安裝的版本,docker machine安裝成功。
為了方便使用docker machine的shell指令,我們需要安裝補全命令腳本。
使用如下指令將machine腳本保存到centos目錄/etc/bash_completion.d:
base=https://raw.githubusercontent.com/docker/machine/v0.16.0 for i in docker-machine-prompt.bash docker-machine-wrapper.bash docker-machine.bash do sudo wget "$base/contrib/completion/bash/${i}" -P /etc/bash_completion.d done
執行結果如下:
在/etc/bash_completion.d目錄下查看:
可以看到增加了3個腳本。
接著,運行下面指令使腳本生效:
source /etc/bash_completion.d/docker-machine-prompt.bash
最後,修改~/.bashrc 文件,增加內容如下:
驗證是否成功,查詢所有machine,使用docker-machine ls命令:
命令執行成功。
卸載docker-machine
刪除單個docker machine:
docker-machine rm
刪除所有docker machine:
docker-machine rm -f $(docker-machine ls -q)
刪除docker machine可執行文件:
rm $(which docker-machine)
which docker-machine命令運行結果如下:
在環境準備好後,下面開始創建docker-machine。
創建docker-machine
創建docker-machine的本質是在其他主機上部署容器環境。為了測試,大家在阿里雲上申請另外兩臺虛擬機,注意:不要使用裝有docker環境的鏡像,即不要安裝docker程序,否則無法完成測試。
阿里雲虛擬機申請結果如下:
兩臺虛擬機 主機名和公有IP分別如下:
docker-machine001:120.25.124.44
docker-machine002:39.108.65.200
安裝有docker-machine程序的虛擬機信息如下:
docker:120.25.125.32
下面為了敘述方便,使用主機名敘述。docker-machine001簡稱為machine1,docker-machine002簡稱為machine2。
由於docker主機要訪問另外兩臺主機,因此需要初始化ssh環境。操作如下:
在docker主機上生成密鑰,命令為:ssh-keygen -t rsa
將ssh key拷貝到machine1和machine2,命令為: ssh-copy-id:
執行過程中,需要輸入machine1主機密碼;拷貝密鑰完成後,使用ssh命令連接另一臺主機,可以看到進入machine1主機成功。
對machine2的操作同上,這裡就不展示了。
環境準備好後,下面創建兩個docker-machine,在docker主機上執行下面命令。
命令如下:
docker-machine create --driver generic --generic-ip-address=120.25.124.44 node1 docker-machine create --driver generic --generic-ip-address=39.108.65.200 node2
node1和node2是命名的主機名,這個主機名和上面的主機名不一樣,它們在docker-machine系統中有效。
結果如下:
創建會持續一段時間,完成後,使用docker-machine ls命令查詢,可以看到創建的node1。從查詢結果可以看到:DOCKER列給出了容器版本v19.03.2。
在machine1上查詢docker是否創建成功:
docker狀態正常,使用同樣步驟創建node2。
查詢所有machine,命令:
docker-machine ls
創建成功。
docker-machine常用命令
查詢: docker-machine ls 上面已經使用過,這裡就不顯示了
創建:docker-machine create 參考上面的操作
查詢詳情: docker-machine inspect 主機名
返回結果很多,這裡只展示一部分。
啟動:docker-machine start 主機名
重啟:docker-machine restart 主機名
刪除:docker-machine rm 主機名
查詢狀態:docker-machine 主機名
停止:docker-machine kill 主機名
該命令不是完全支持。
停止: docker-machine stop 主機名
該命令不是完全支持。
注意:docker-machine stop/kill的區別和docker stop/kill的區別類似,前者是優雅的停止,後者是強制停止。
查詢環境變量:docker-machine env 主機名
查詢配置: docker-machine config 主機名
更新docker版本:docker-machine upgrade 主機名
docker-machine的命令就介紹到這裡,其他的命令大家後續用到再講解。
至此,docker-machine基本講解完了,請大家完成實驗。
實驗
使用docker-machine創建容器主機,至少兩個
測試docker-machine常用命令