首页 > 解决方案 > 如何将容器链接传递给子容器?

问题描述

我运行 postgres 容器:

docker run --name db -p 5432:5432 postgres

然后我运行一些带有 postgres 容器链接的容器 A:

docker run --name A --link=db:db [other params]

现在我在容器 A 内,想从这里运行容器 B。B也需要db链接。我该怎么做?

标签: docker

解决方案


简短而简单:只需传递--link=db:db给子容器即可。例子:

$ docker run --rm -d --name db postgres:alpine
$ docker run --rm -it --name contA --link=db:db -v /var/run/docker.sock:/var/run/docker.sock docker:stable
  / # ping db
  PING db (172.17.0.2): 56 data bytes
  64 bytes from 172.17.0.2: seq=0 ttl=64 time=0.357 ms
  [...] # works
  / # docker run --rm -it --name contB --link=db:db alpine:latest
    / # ping db
    PING db (172.17.0.2): 56 data bytes
    64 bytes from 172.17.0.2: seq=0 ttl=64 time=0.388 ms
    [...] # works as well

$是本地机器的 Bash,/ #contA/的外壳contB。我试图缩进一些东西,希望能让兔子洞的水平清晰。)


推荐阅读