能否使用 Docker 连接现有的容器?

9

我可以使用 docker run <image> 命令创建一个容器,而不使用 --link 选项,然后在之后将其他容器链接到它吗?如果可以的话,如何链接这些容器?

2个回答

3
这就是通常的做法。启动容器A并使用--link B:resourcename启动容器B。在容器B中,您现在可以访问容器A EXPOSE的东西,在环境变量env中可以看到有关resourcename的相关信息(在此情况下,它们将被命名为某些东西)。
您无法反过来做到这一点(正如我最初认为您的问题所在)。容器需要获取其他资源的信息作为环境变量。这些变量无法注入到正在运行的进程中(据我所知..)。

那么是不是不可能连接两个已存在的容器?我只有在使用 "docker run <image> --link" 命令创建新容器时才能进行连接吗? - Jan Wy
链接目前是静态的,您可以遵循此提案:https://github.com/docker/docker/issues/7468 以了解相关进展。 - Nicolas Goy
“--link”现已被弃用。您可能想要阅读此文档:https://docs.docker.com/engine/userguide/networking/ - FrustratedWithFormsDesigner

0
当然可以,但你只能通过 IP 地址(通常为 172.17.1.x)访问其他容器。 你可以使用


docker inspect container_id

查找其他容器的 IP。


1
刚刚给你点了赞。如果有人在投反对票,请在评论中解释为什么这样做。这解决了我的问题。我知道这可能不是最佳实践,但如果需要,您可以使用它。 - guy mograbi
这个也解决了我的问题,:) - jeyanthinath
1
问题是如何链接容器。这个答案说明了如何检查容器,因此并没有回答问题。 - duality_

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接