我在一个群中有三个节点。在每个节点上,我都有运行的容器,我可以用docker ps.看到这些容器
当我做docker服务时,我会看到由集群运行的服务。但是当我查看端口描述的输出时,打开的端口是不同的。怎么可能呢?
当应用程序运行时,工作是由集群中的容器还是服务完成的?
感谢
当在群中发布端口服务时,不同端口的行为是使用群模式路由网格时的正常行为。当您发布服务的端口但不使用已发布的端口值时,就会发生这种情况。因此,如果不使用已发布的端口,则会为每个服务任务绑定一个随机的高编号端口。您需要检查任务以确定端口
$ docker service create
--name <SERVICE-NAME>
--publish published=<PUBLISHED-PORT>,target=<CONTAINER-PORT>
例如,以下命令将nginx容器中的端口80发布到群中任何节点的端口8080
$docker service create
--name my-web
--publish published=8080,target=80
--replicas 2
nginx
在此链接中,您将找到有关此行为的信息。
当您在当前配置中通过yaml文件应用更改时,此操作将使用新yaml文件中的新配置覆盖当前设置,因此请采取预防措施,例如在应用任何更改之前从当前配置进行备份。