如何将两个正在运行的docker集装箱连接在一起?

我想知道如何链接已经运行的docker容器。 这可能吗?

例如,如果我有2个应用程序( app1app2 )图像和一个运行mongo容器,我可以很容易地链接他们,当我通过执行以下操作:

 docker run -d -name app1 --link mongo:mongo -p 8080:8080 app1 docker run -d -name app2 --link mongo:mongo -p 8081:8081 app2 

这很好。 但是,假设我已经运行了app1app2 没有将它们链接到mongo容器,我该如何将应用程序的容器链接到正在运行的mongo容器?

您需要将端口从容器公开到主机,然后容器可以通过HOST_IP(从容器内部默认为172.0.0.1)来相互ping通。

例如:你的app在8080上运行,你的mongo运行在你的应用程序容器中的8000(暴露的端口到主机)exec中,并使用ifconfig获取$ HOST_IP

之后,尝试ping你的mongo服务

 curl $HOST_IP:8000 (I'm not sure about this command ^^ if it's not ok, google it)