[英]How to stop/start docker containers in swarm mode without removing?
我是 docker swarm 模式的新手。 如您所知,可以啟動/停止 docker 容器,但我認為不可能在 swarm 中執行此操作。
例如,我已經部署了 swarm 並使用副本(2/2)創建了新任務:
docker service ls
ID NAME MODE REPLICAS IMAGE PORTS
2o3a6z30q9df contactactivity replicated 2/2 myimage/live-springboot-myservice:19ff0be1f0087asd1dasdb52c345151e9985b4a5a2 *:111->1111/tcp
是否可以在不移除一個 swarm 容器的情況下停止它並在將來將其帶回來?
PS我只是想澄清刪除或重新創建 - 在我的情況下不是選項。
讓 Q 清楚:如果你停止容器然后啟動 - 這個容器不會成為 swarm 的一部分。 我無法相信在 swarm 模式下無法進行簡單的重啟或啟動/停止。
列出為服務運行的容器並停止它們,例如docker ps | grep service-name
docker ps | grep service-name
然后使用上面命令中的docker stop <ID>
停止容器。
OR
如果您想停止所有容器,那么只需將服務縮小到 0 如下docker service scale servicename=0
使用docker service scale servicename=N
將它們帶回來
不,這不可能“開箱即用”,即使您設法以某種艱難的方式進行,它也會與 Docker Swarm 方法形成鮮明對比。
您嘗試執行的步驟是典型的(手動)操作步驟:使用 Swarm,您需要對編排器(UCP,管理器節點中的邏輯)進行此類操作。
Swarm 每次決定執行時都會啟動一個新任務,一個容器實例,並且它始終是一個新的啟動容器。 這有兩個后果,它們是 docker 最佳實踐,也許一起可以解決您的問題:
我自己也覺得很奇怪,但顯然 docker swarm 想要的方法是刪除服務,然后從堆棧或命令行重新部署它。 此外,如果服務是全局的,並在失敗時重新啟動策略並且容器被終止,則它的兩個實例將存在(但如果它被正常停止則不會)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.