1. version: '3'
    2. services:
    3. api:
    4. image: 10.211.55.103:5000/swarm/swarm-api:1.0-SNAPSHOT
    5. ports:
    6. - "8123:8123"
    7. stop_grace_period: 10s
    8. deploy:
    9. mode: replicated
    10. replicas: 3
    11. networks:
    12. - twx
    13. client:
    14. image: 10.211.55.103:5000/swarm/swarm-client:1.0-SNAPSHOT
    15. ports:
    16. - "8124:8124"
    17. stop_grace_period: 10s
    18. deploy:
    19. mode: replicated
    20. replicas: 3
    21. networks:
    22. - twx
    23. networks:
    24. twx:

    如果服务不指定network的话,是 无法通过服务名称进行调用的。

    如上这个stack文件,通过命令docker stack deploy -c docker-mh.yml mh部署时会创建

    • mh_twx 网络
    • mh_api 服务
    • mh_client 服务

    此时api服务和client服务是连接到同一个overlay网络上的,所以可以通过服务名访问。

    比如进入client服务的任意一个容器,执行 ping api 命令 ,便能访问到api服务。