gpt4 book ai didi

docker - 如何从另一个都在不同机器上运行的容器访问一个容器?

转载 作者:行者123 更新时间:2023-12-02 21:11:45 25 4
gpt4 key购买 nike

我对 docker 网络了解不多,我有 2 个不同的容器,而它们被放置在两台不同的机器上。在这种情况下,我有 两个树莓派 其中一个是 服务器 另一个是 客户 .

两者都使用 CoAP 协议(protocol)来交换消息。无论如何,客户端需要服务器的 ip 作为客户端脚本的参数,例如 --

python src/client.py <server_ip> 

我检查了服务器容器并获得了私有(private) ip——
172.18.0.2

这是服务器和客户端的 docker-compose 文件——

docker-compose.yml(服务器)
version: '3'

services:
server:
build: ./
image: img_server:v1
ports:
- 5683:5683/udp
volumes:
- ./:/usr/app
command: ["python", "src/server.py"]

docker-compose.yml(客户端)
version: '3'

services:
client:
build: ./
image: img_client:v1
environment:
SERVER_IP: "127.0.0.1"
ports:
- 61616:61616/udp
volumes:
- ./:/usr/app
command: ["sh", "-c", "python src/client.py $SERVER_IP"]

我无法建立连接,因为容器(服务器和客户端)在不同的机器上运行。

问题:是否可以在服务器和客户端之间建立连接,两者都放置在单独的 docker 守护程序(单独的机器)中?如果是这样,那么我该怎么做?

最佳答案

就像服务没有在 Docker 中运行一样:使用运行服务的物理主机的 IP 地址配置客户端。 (确保您已发布适当的 ports:,以便他们可以访问。)

你不应该docker inspect一个容器来查找它的 IP 地址。有很多常见的情况,包括这个,地址是完全没用的,总有更好的方法可以到达容器。

关于docker - 如何从另一个都在不同机器上运行的容器访问一个容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54109966/

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