docker deploy 不会在 swarm 中发布端口
docker deploy won't publish port in swarm
我已经设置了一个包含两个节点的群,一个管理器和一个工作器。我想在 swarm 中发布一个端口,这样我就可以访问我的应用程序,我想知道如何实现这一点。
version: '2'
services:
server:
build: .
image: my-hub.company.com/application/server:latest
ports:
- "80:80"
这会在我 运行 docker 组合时公开端口 80,它工作得很好,但是当我 运行 捆绑部署时
docker deploy my-service
这不会发布端口,所以它只是在 docker ps 中说 80/tcp,而不是指向端口。也许这是因为我需要附加一个负载平衡器或 运行 一些花哨的命令,或者可能添加另一层配置以在多主机群中实际公开此端口。
谁能帮我理解我需要什么configure/do才能使它暴露一个端口。
我最好的情况是端口 80 公开,如果我从不同的主机名访问它,它会将我发送到不同的应用程序。
更新:
如果我在部署应用程序后 运行 以下命令似乎有效
docker service update -p 80:80 my-service_server
docker kill <my-service_server id>
我找到了这个用于 运行 HA 代理的存储库,它看起来很棒并且受到 docker 本身的支持,但是我似乎无法使用新的群模式将它单独应用于我的服务.
https://github.com/docker/dockercloud-haproxy
底部有一个很好的描述,描述了网络的外观:
Internet -> HAProxy -> Service_A -> Container A
但是我无法通过 docker 服务创建命令找到 link 服务的方法,现在最理想的是设置网络的方法,当我将此网络应用于服务时它会在 HAProxy 中获取它。
-- 马库斯
Swarm 模式以不同的方式发布端口。它不会出现在 docker ps
中,因为它没有在主机上发布端口,而是将端口发布到所有节点,以便它可以在服务副本之间进行负载平衡。
您应该会看到来自 docker service inspect my-service
的端口。
任何其他服务应该能够连接到 my-service:80
据我所知,您可以在创建后发布更新服务的端口,如下所示:
docker service update my-service --publish-add 80:80
docker service ls
将显示端口映射。
我已经设置了一个包含两个节点的群,一个管理器和一个工作器。我想在 swarm 中发布一个端口,这样我就可以访问我的应用程序,我想知道如何实现这一点。
version: '2'
services:
server:
build: .
image: my-hub.company.com/application/server:latest
ports:
- "80:80"
这会在我 运行 docker 组合时公开端口 80,它工作得很好,但是当我 运行 捆绑部署时
docker deploy my-service
这不会发布端口,所以它只是在 docker ps 中说 80/tcp,而不是指向端口。也许这是因为我需要附加一个负载平衡器或 运行 一些花哨的命令,或者可能添加另一层配置以在多主机群中实际公开此端口。
谁能帮我理解我需要什么configure/do才能使它暴露一个端口。
我最好的情况是端口 80 公开,如果我从不同的主机名访问它,它会将我发送到不同的应用程序。
更新: 如果我在部署应用程序后 运行 以下命令似乎有效
docker service update -p 80:80 my-service_server
docker kill <my-service_server id>
我找到了这个用于 运行 HA 代理的存储库,它看起来很棒并且受到 docker 本身的支持,但是我似乎无法使用新的群模式将它单独应用于我的服务.
https://github.com/docker/dockercloud-haproxy
底部有一个很好的描述,描述了网络的外观:
Internet -> HAProxy -> Service_A -> Container A
但是我无法通过 docker 服务创建命令找到 link 服务的方法,现在最理想的是设置网络的方法,当我将此网络应用于服务时它会在 HAProxy 中获取它。
-- 马库斯
Swarm 模式以不同的方式发布端口。它不会出现在 docker ps
中,因为它没有在主机上发布端口,而是将端口发布到所有节点,以便它可以在服务副本之间进行负载平衡。
您应该会看到来自 docker service inspect my-service
的端口。
任何其他服务应该能够连接到 my-service:80
据我所知,您可以在创建后发布更新服务的端口,如下所示:
docker service update my-service --publish-add 80:80
docker service ls
将显示端口映射。