首页 > 解决方案 > Docker Swarm - 无法从同一主机访问服务(如果使用不带堆栈的 docker-compose 则有效)

问题描述

我有一个正在从其他容器以及主机本身访问的服务。docker-compose.yaml 中的定义

version: "3.8"
services:
  ads:
    image: cloud.dev/ads:test1
    container_name: ads
    hostname: ads
    ports:
      - "9001:9000"

ads:9000当我从主机访问该应用程序时,其他容器访问此服务ads:9001并且它可以工作!

然后我测试了docker swarm。我创建了一个堆栈ams_stack 并定义了我的ads服务ams_stack

version: "3.8"
services:
  ads:
    image: cloud.dev/ads:test1
    deploy:
      replicas: 1
      placement:
        constraints:
          - "node.role==worker"
    hostname: ams_stack_ads
    ports:
      - "9001:9000"

我看到该服务正在运行!

6b0f8d514f02    cloud.dev/ads:test1   "dssrv_mssql.exe -ad…"   3 hours ago   Up 3 hours    ams_stack_ads.1.owmej7byvzhnwud98dwmo4joe

所以我尝试访问:

ams_stack_ads:9001
ams_stack_ads:9000
ads:9001
ads:9000

没有任何效果...请帮助...谢谢

标签: dockerdocker-composedocker-swarmdocker-containerdocker-swarm-mode

解决方案


推荐阅读