我已经设置了一个带有两个节点(一个管理节点和一个工作节点)的集群。我想发布一个端口以便可以访问我的应用程序,我想知道如何实现这一点。
version: '2'
services:
server:
build: .
image: my-hub.company.com/application/server:latest
ports:
- "80:80"
当我运行docker-compose up时,它会公开端口80,并且可以正常工作,但是当我运行一个捆绑部署时
docker deploy my-service
这不会发布端口,所以在docker ps中只会显示80/tcp,而不是指向一个端口。也许这是因为我需要连接负载均衡器或运行一些高级命令或者添加另一层配置来在多主机集群中实际暴露此端口。
有人能帮我理解如何配置/做才能将其暴露出来吗?
最理想的情况是80端口被暴露,并且如果我从不同的主机名访问它,它将发送我到不同的应用程序。
更新: 似乎在部署应用程序后运行以下命令可以使其工作
docker service update -p 80:80 my-service_server
docker kill <my-service_server id>
我发现了这个用于运行HA代理的存储库,它似乎非常好,并且得到了Docker的支持,但是我似乎无法在新的swarm模式下将其与我的服务分开应用。
https://github.com/docker/dockercloud-haproxy
底部有一个描述网络应该如何看起来的不错的说明:
Internet -> HAProxy -> Service_A -> Container A
然而,我无法找到通过docker service create命令链接服务的方法,目前最理想的方法似乎是设置一个网络,并在服务上应用此网络,然后HAProxy将会识别它。
-- Marcus