我有一个集群,有两个节点,一个经理和一个工人。我想在 swarm 中发布一个端口,这样我就可以访问我的应用程序,我想知道我是如何实现这一点的。
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 中获取它。
- 马库斯