Docker Swarm:如何更新已发布的帖子

moe*_*man 4 docker docker-swarm

我使用 Play-with-Docker 平台创建了一个包含 3 个 Docker 实例的 Swarm 集群:1 个管理器和 2 个工作器;然后我从图像创建一个服务nginx:alpine

docker service create -p 8080:80 --name nginx-app nginx:alpine
Run Code Online (Sandbox Code Playgroud)

事情进展顺利。

然后我update使用更改发布端口的服务:而不是8080,现在我希望发布端口为8081。我跑了这个:

docker service update --publish-rm 8080 --publish-add 8081 nginx-app
Run Code Online (Sandbox Code Playgroud)

但它并没有删除已发布的端口8080;相反,它创建了另一个已发布的端口30002,该端口30002映射到8081

在此输入图像描述

我在这里做错了什么?如何更改已发布的端口?

BMi*_*tch 6

--publish-rm选项采用目标端口,而不是已发布的端口:

docker service update --publish-rm 80 --publish-add 8081:80 nginx-app
Run Code Online (Sandbox Code Playgroud)