【发布时间】:2018-10-17 15:16:57
【问题描述】:
我创建了一个 swarm 并加入了一个节点,非常好,一切正常
docker swarm init --advertise-addr 192.168.99.1
docker swarm join --token verylonggeneratedtoken 192.168.99.1:2377
我在 swarm manager 上创建了 3 个服务
docker service create --replicas 1 --name nginx nginx --publish published=80,target=80
docker service create --replicas 1 --name php php:7.1-fpm published=9000,target=9000
docker service create --replicas 1 --name postgres postgres:9.5 published=5432,target=5432
所有服务都可以正常启动,但是如果我用我的应用程序自定义 php 映像,并配置 nginx 以侦听 php fpm 套接字,我找不到与这三个服务通信的方法。即使我使用“docker exec -it service-id bash”访问服务并尝试 ping 容器名称或主机名(我什至尝试 curl 它们)。
我想说的是我不知道如何配置 nginx 以连接到 fpm,因为我不知道一个容器如何使用 swarm 与另一个容器通信。使用 docker-compose 或 docker run 就像使用链接选项一样简单。我已经阅读了所有文档,花了几个小时反复试验,但我无法理解这一点。我已经阅读了有关路由网格的信息,希望将发布端口并且它确实对外部世界有用,但我无法在希望 ip 它为内部容器发布,也不能是随机 ip会导致管理我的应用程序配置的问题,甚至是 nginx 配置。
【问题讨论】:
标签: docker docker-swarm