通過上一節已經創建了1個manager和2個worker,現在看看如何使用。源碼地址:https://github.com/limingios/docker中的No.5;
之前說docker-compose的時候提過service,一個service就是一個container一個容器,而在swarm中的service,是一個container,可能運行在我們的clus裡面的任何一個節點上邊。
docker service create 和 docker run 的命令基本是一致的。在swarm下就不在使用docker run了,docker run 是在本地創建一個容器。我們在clus下創建的docker 容器不一定是運行在那個機器下。所以docker run 基本不用了。
docker service --help docker servcie create docker run
docker service create --name demo busybox sh -c "while true;do sleep 3600;done" docker service ls #目前這個容器是運行在swarm-worker1上,這都是隨機的。 docker service ps demo
docker service ls
#橫向水平擴展至5個容器 docker service scale demo=5 docker service ls docker service ps demo
我們先去worker2中強制刪除,然後查看manager的情況,在過一會通過命令查看docker service ls的情況
# 在docker-work2 中刪除 容器 docker rm -f 容器2中的容器ID # 在docker-manager中查看,正常運行的只有4個 docker service ls # 查看詳細的情況,docker-work2中的容器已經shutdown了 docker service ps demo
過幾十秒 在查看容器運行情況,自動回復之前要求的5個。
# 在docker-manager中查看,正常運行的只有5個 docker service ls # 查看詳細的情況,docker-work2中的容器已經shutdown了,又起來了一個 docker service ps demo
docker service rm demo
PS:docker service 內部有很多複雜的操作,雖然各位老鐵用了簡單的 一個創建一個刪除,但是底層裡面會知道有多個容器,在那個機器上邊,這些機器裡面的容器應用運行那些命令,這就起到了集羣管理。
推薦閱讀: