来自https://groups.google.com/forum/#!topic/docker-user/A180aHSlQRE
的X-post假设我运行以下命令将web容器链接到db container-
new Recipe(recipe);
现在我希望我的Web容器链接到其他容器而不重新启动Web容器。可能吗?
答案 0 :(得分:4)
不,一旦启动,您就无法将容器链接到另一个容器。但是您可以将新容器链接到web
容器:
docker run -d -P --name myapp --link web <image> <command>
或者您可以将另一个web
容器链接到数据库容器:
docker run -d -P --name web2 --link db training/webapp python app.py
说过你的第一个web
容器正在运行,你也可以运行:
docker inspect web
找出该容器的详细信息,看看您是否想在您创建的新容器中使用它们。您可以尝试的另一件事是让您的web
容器具有交互性,因此一旦启动它就可以在运行时对其进行修改。
答案 1 :(得分:1)
实际上,有办法克服这个限制。
在这种情况下,您可以将LINKED_CONTAINER_IP和LINKED_CONTAINER_NAME直接添加到&#34; HOST CONTAINER&#34;的/ etc / hosts文件中。使用以下程序:
获取您想要另外链接到&#34;主机容器&#34;的正在运行的容器的IP地址。使用
docker inspect --format '{{ .NetworkSettings.IPAddress }}' CONTAINERID
直接来自主持人
3然后将名称中的ip添加到&#34; HOST CONTAINER&#34;的/etc/hosts
中。文件如下
首先获得运行主机容器
的交互式访问权限 docker exec -it CONTAINERID sh
进入shell提示后,使用
将行添加到/etc/hosts
文件
echo "LINKED_CONTAINER_IP LINKED_CONTAINER_NAME" >> /etc/hosts
ping LINKED_CONTAINER_NAME
请注意这是临时解决方案,只有在重新启动任何容器之后才能使用,在这种情况下,IP地址可能会更改,因此解析为LINKED_NAME将不再有效!