Docker 如何在不重新启动的情况下链接到其他容器?

Docker 如何在不重新启动的情况下链接到其他容器?,docker,Docker,X-post从 假设我运行以下命令将web容器链接到db容器- 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>

X-post从

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

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>
docker run -d -P --name web2 --link db training/webapp python app.py
话虽如此,由于您的第一个
web
容器正在运行,您还可以运行:

docker inspect web

查找该容器的详细信息,并查看是否要在您创建的新容器中使用它们。您可以尝试的另一件事是使您的
web
容器具有交互性,这样一旦启动它,您就可以在运行时对其进行修改。

实际上,有办法克服此限制

在这种情况下,您可以使用以下过程将LINKED_CONTAINER_IP和LINKED_CONTAINER_NAME直接添加到“主机容器”的/etc/hosts文件中:

  • 获取正在运行的容器的IP地址,您还希望使用该地址链接到“主机容器”

    docker-inspect--format'{{.NetworkSettings.IPAddress}}'容器ID

  • 直接从主机

    3然后将名称为的ip添加到“主机容器”文件的
    /etc/hosts
    ,如下所示

    • 首先交互式访问正在运行的主机容器

      docker exec-it集装箱船sh

    • 进入shell提示符后,使用以下命令将行添加到
      /etc/hosts
      文件

      echo“LINKED\u CONTAINER\u IP LINKED\u CONTAINER\u NAME”>/etc/hosts

    • 使用
      ping链接的\u容器\u名称进行验证
    请注意这是一个临时解决方案,只有在重新启动任何容器后才有效,在这种情况下,IP地址可能会更改,因此解析到链接的\u名称将不再有效