gpt4 book ai didi

docker - 如何在docker中链接容器?

转载 作者:IT老高 更新时间:2023-10-28 12:36:00 24 4
gpt4 key购买 nike

这是我输入 docker ps 时的结果: here is the image when i type docker ps

我有 3 个 docker 容器:webapps、redis 和 rabbitmq。我想将容器 webapps 链接到容器 redis 和 rabbitmq 容器。在非 docker 应用中,mywebapps 可以向 rabbitmq 发送消息并写入/读取 redis。

我尝试使用这样的命令

docker run --name rabbitmq -p 8080:80 --link webapps:nimmis/apache-php7 -d rabbitmq

但它不起作用。

这是我尝试通过rabbitmq发送消息的webapps上的config.php:

define('HOST', 'localhost');
define('PORT', 5672);

我尝试用主机名更改本地主机

define('HOST', 'rabbitmq');
define('PORT', 5672);

错误消息显示连接被拒绝

看来我的三个容器中需要配置在同一个网络命名空间中。

最佳答案

链接是一项旧功能。请使用“用户定义的网络”:

sudo docker network create mynetwork

然后使用此网络重新运行您的容器:

sudo docker run --name rabbitmq -p 8080:80 -d --network mynetwork rabbitmq

对要相互连接的其他容器执行相同操作。

使用“用户定义的网络”,您可以使用“内部名称解析”(有点像访问网站时的域名解析)。您可以使用要引用的容器的名称来解析容器的 IP 地址,只要它们在相同的“用户定义的网络”上运行。有了这个,您可以在同一网络上的其他容器中解析 rabbitmq 容器的 IP 地址及其名称。

所有 容器在同一“用户定义的网络”上将具有网络连接。不需要“遗留链接”。

关于docker - 如何在docker中链接容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41768157/

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