如何链接到附加容器而不重新启动?

来自https://groups.google.com/forum/#!topic/docker-user/A180aHSlQRE的 Xpost

假设我运行以下命令将web容器链接到db container-

docker run -d -P --name web --link db training/webapp python app.py 

现在我想我的Web容器链接到额外的容器,而无需重新启动Web容器。 可能吗?

不,一旦启动,您就无法将容器链接到另一个容器。 但是,您可以将新的容器链接到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 

找出该容器的细节,看看你是否想在你创build的新容器中使用它们。 你可以尝试的另一件事是让你的web容器交互,所以一旦你开始它可以在运行时修改它。

其实,有办法克服这个限制。

在这种情况下你可以做什么,使用以下步骤直接将LINKED_CONTAINER_IP和LINKED_CONTAINER_NAME添加到“HOST CONTAINER”的/ etc / hosts文件中:

  1. 获取您要另外链接到“主机容器”使用的正在运行的容器的IP地址

    docker inspect --format '{{ .NetworkSettings.IPAddress }}' CONTAINERID

直接从主机

3,然后将该名称添加到“HOST CONTAINER”文件的/etc/hosts中,如下所示

  • 首先进入运行主机容器的交互访问权限

    docker exec -it CONTAINERID sh

  • 一旦进入shell提示符后,使用添加行到/etc/hosts文件

    echo "LINKED_CONTAINER_IP LINKED_CONTAINER_NAME" >> /etc/hosts

    1. 使用ping LINKED_CONTAINER_NAMEvalidation

请注意, 这是一个临时的解决scheme ,只有在任何容器重新启动的情况下才有效,在这种情况下,IP地址可能会改变,因此parsing为LINKED_NAME将不再起作用!