gpt4 book ai didi

docker stack 容器间通信

转载 作者:行者123 更新时间:2023-12-02 18:54:29 24 4
gpt4 key购买 nike

我正在尝试使用 docker 设置集群,但在容器之间通信时遇到问题。我有 5 个节点的集群。 1 名经理和 4 名 worker 。

3 个应用:redis、splash、myapp

myapp 必须位于 4 个工作线程上

redis,仅在管理器上启动

myapp 必须能够与 redis 和splash 通信

我尝试使用容器名称,但它不起作用。它将容器名称解析为不同的IP。

ping Splash # 返回与容器实际不同的 ip

我正在使用docker stack部署运行群

docker stack deploy -c docker-stack.yml myapp

它们之间的链接容器也不起作用。有任何想法吗 ?我错过了什么吗?

root@swarm-manager:~# docker version
Client:
Version: 17.09.0-ce
API version: 1.32
Go version: go1.8.3
Git commit: afdb6d4
Built: Tue Sep 26 22:42:18 2017
OS/Arch: linux/amd64

Server:
Version: 17.09.0-ce
API version: 1.32 (minimum version 1.12)
Go version: go1.8.3
Git commit: afdb6d4
Built: Tue Sep 26 22:40:56 2017
OS/Arch: linux/amd64
Experimental: false

docker-stack.yml 包含:

version: "3"
services:
splash:
container_name: splash
image: scrapinghub/splash
ports:
- 8050:8050
- 5023:5023
deploy:
mode: global
placement:
constraints:
- node.role == manager

redis:
container_name: redis
image: redis
ports:
- 6379:6379
deploy:
mode: global
placement:
constraints:
- node.role == manager

myapp:
container_name: myapp
image: myapp_image:latest
environment:
REDIS_ENDPOINT: redis:6379
SPLASH_ENDPOINT: splash:8050
deploy:
mode: global
placement:
constraints:
- node.role == worker
entrypoint:
- ping google.com

---- 编辑 ----

我也尝试过使用curl。没用。docker stack deploy -c docker-stack.yml myapp

Creating network myapp_default
Creating service myapp_splash
Creating service myapp_redis
Creating service myapp_myapp

curl http://myapp_splash:8050

curl:(7) 无法连接到 myapp_splash 端口 8050:没有到主机的路由

curl http://splash:8050

curl: (7) 无法连接到启动端口 8050:没有到主机的路由

有效的是获取splash的实际容器名称,这是一些随机生成的字符串。

curl http://myapp_splash.d7bn0dpei9ijpba4q41vpl4zz.tuk1cimht99at9g0au8vj9lkz:8050

但这并没有真正帮助我。

最佳答案

Ping 不是尝试连接服务的正确工具。由于某种原因,它不适用于 docker 网络。尝试 curl http://serviceName相反。

除此之外:使用堆栈部署时无法命名容器,而是使用您的服务名称(巧合的是相同的)来访问另一个服务。

关于docker stack 容器间通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46913411/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com