(三)管理 Machine
用 docker-machine 創建 machine 的程序很簡潔,非常適合多主機環境,除此之外,Docker Machine 也提供了一些子命令方便對 machine 進行管理,其中最常用的就是無需登錄到 machine 就能執行 docker 相關操作,
我們前面學過,要執行遠程 docker 命令我們需要通過 -H 指定目標主機的連接字串,比如:
docker -H tcp://10.0.0.21:2376 ps
Docker Machine 則讓這個程序更簡單,docker-machine env host1顯示訪問 host1 需要的所有環境變數:
root@cuiyongchao:~# docker-machine env host1
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://10.0.0.21:2376"
export DOCKER_CERT_PATH="/root/.docker/machine/machines/host1"
export DOCKER_MACHINE_NAME="host1"
# Run this command to configure your shell:
# eval $(docker-machine env host1)
root@cuiyongchao:~#
根據提示,執行 eval $(docker-machine env host1):
eval $(docker-machine env host1)
然后,就可以看到命令列提示符已經變了,其原因是我們之前在$HOME/.bashrc 中配置了 PS1='[\u@\h \W$(__docker_machine_ps1)]\$ ',用于顯示當前 docker host,
在此狀態下執行的所有 docker 命令其效果都相當于在 host1 上執行,例如啟動一個 busybox 容器:
docker run -itd busybox
執行 eval $(docker-machine env host2) 切換到 host2:
eval $(docker-machine env host2)
下面再介紹幾個有用的 docker-machine 子命令:
docker-machine upgrade 更新 machine 的 docker 到最新版本,可以批量執行:
root@cuiyongchao:~# docker-machine upgrade host1
Waiting for SSH to be available...
Detecting the provisioner...
Upgrading docker...
Restarting docker...
root@cuiyongchao:~#
docker-machine config 查看 machine 的 docker daemon 配置:
root@cuiyongchao:~# docker-machine config host1
--tlsverify
--tlscacert="/root/.docker/machine/machines/host1/ca.pem"
--tlscert="/root/.docker/machine/machines/host1/cert.pem"
--tlskey="/root/.docker/machine/machines/host1/key.pem"
-H=tcp://10.0.0.21:2376
root@cuiyongchao:~#
stop/start/restart 是對 machine 的作業系統操作,而 不是 stop/start/restart docker daemon,
docker-machine scp 可以在不同 machine 之間拷貝檔案,比如:
docker-machine scp host1:/tmp/a host2:/tmp/b
可見,在多主機環境下 Docker Machine 可以大大提高效率,而且操作也很簡單,希望大家都能掌握,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/228784.html
標籤:其他
