让两个容器相互链接

马里奥

我有几个Docker容器,还有一个特例,其中两个必须互相交谈,因此它们必须通过链接最多彼此了解。我可以将一个容器链接到另一个容器,但是问题是,我不能告诉他们第二个容器可以与第一个容器对话。

我尝试创建并运行第一个容器并停止它,然后创建启动第二个容器并也停止了它。接下来,我再次启动了第一个容器并链接到第二个容器,并启动了第二个容器并链接到第一个容器。此后,我的机器发疯了,docker进程占用了所有CPU和内存,并且两个容器均不可访问。当您终止该进程时,将弹出一个新的进程。即使当我卸载docker重启机器并再次安装docker时,它也回到了疯狂的状态,甚至没有启动任何一个容器。

有谁能找到一种解决方案,如何将两个容器相互链接或如何使它们在两个方向上相互通信?

瓦斯格伦

推荐的方法是创建一个用户定义的网络,您可以在其中连接多个容器。

使用以下命令可以轻松创建网络:

docker network create -d bridge my-net

创建网络后,您可以像这样启动容器。

第一个容器:

docker run -it --name b1 --network=my-net --rm bash:4.4

第二个容器:

docker run -it --name b2 --network=my-net --rm bash:4.4

bash-4.4# ping b1
PING b2 (172.26.0.3): 56 data bytes
64 bytes from 172.26.0.3: seq=0 ttl=64 time=0.111 ms
64 bytes from 172.26.0.3: seq=1 ttl=64 time=0.336 ms
...

可以在Docker文档中找到有关用户定义网络的更多信息


另一种使用链接的方法是通过在每个容器上暴露端口并将容器绑定到主机接口来映射容器

docker run --net=host -p 127.0.0.1:5555:5555 --name container1 my/dockerimage1 
docker run --net=host -p 127.0.0.1:6666:6666 --name container2 my/dockerimage2

这样container1可以访问container2的通过本地主机:6666container2的可访问container1通过本地主机:5555

不是链接,但是无法进行双向链接

Docker网络文档进一步说明了这一点。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

链接两个表单输入以相互动态更新

来自分类Dev

无法让两个容器(在两个不同的网络中)相互通信

来自分类Dev

无花果没有链接两个容器

来自分类Dev

链接两个对象并使另一个对象相互关联

来自分类Dev

如何协调两个相互依赖的Docker容器的启动和重新启动?

来自分类Dev

网页分为两个相互垂直的可单击按钮/链接

来自分类Dev

我使用了两个相互链接的ChainedForeignKey字段,但没有。为什么?

来自分类Dev

在Python中将两个类相互链接的正确方法是什么

来自分类Dev

如何链接两个相互连接的集合视图?

来自分类Dev

网页分为两个相互垂直的可单击按钮/链接

来自分类Dev

链接两个任务

来自分类Dev

两个链接的JTextPanes

来自分类Dev

链接分为两个?

来自分类Dev

两个链接的JTextPanes

来自分类Dev

链接两个模型

来自分类Dev

greenDAO:相互比较两个属性

来自分类Dev

相互比较两个边界框

来自分类Dev

两个ScheduledExecutorService相互替代?

来自分类Dev

相互比较两个馆藏数据

来自分类Dev

相互比较两个边界框

来自分类Dev

相互绘制两个从属函数

来自分类Dev

两个相互引用的表

来自分类Dev

如何使两个坐标相互匹配?

来自分类Dev

Laravel - 两个工厂相互引用

来自分类Dev

两个属性相互更新

来自分类Dev

相互引用的两个通用接口

来自分类Dev

是否可以通过链接两个docker容器来自定义环境变量?

来自分类Dev

码头工人链接如何两个容器如何互相知道ip

来自分类Dev

码头工人链接如何两个容器如何互相知道ip