docker - 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
没有任何效果...请帮助...谢谢
解决方案
推荐阅读
- machine-learning - 机器故障预测
- javascript - 如何防止浏览器上的页面刷新回到由ajax调用生成的页面
- swift - 从 Swift 执行 PHP 调用并传递一个参数 - 还不行
- parsing - ANTLR Lexer 匹配错误的规则
- html - 仅使用 HTML 使 GitHub 的 README 在智能手机和台式机上看起来不同(CSS 受到限制)
- javascript - 世博会如何分发包裹?(.web.js、.js 配置)
- php - 如何在php中将新元素附加到会话的末尾?
- r - 根据另一列中值的最后 2 位创建新列
- google-chrome-devtools - 如何以编程方式从 Chrome 命令菜单运行命令
- python - Python中递归函数的斐波那契数列