Docker:显示带链接的运行容器

时间:2017-07-13 14:11:52

标签: docker docker-compose

我使用docker-compose创建一些容器并在它们之间创建链接。假设我有一个名为a的容器正在运行,该容器有一个同时运行的b链接。

我可以轻松检查正在运行的容器,以查看哪些容器链接到哪个容器?<​​/ p>

我注意到docker ps列出了正在运行的容器以及一些有用的信息,比如暴露的端口。同样,docker-compose ps提供相同类型的信息。似乎都没有包含显示链接的选项。

修改

根据下面Erazihel的答案,我尝试docker inspect我正在运行的容器,看起来我没有链接。

$ docker inspect -f "{{ .HostConfig.Links }}" docker_auth_1
[]

也许docker-compose不会像以前那样使用链接?

假设我的docker-compose.yml看起来像:

services:
  auth:
    image: my-auth-image
    depends_on:
      - db
    networks:
      - integration
  db:
    image: my-db-image
    networks:
      - integration
networks:
  integration:
    external: true

也许我对“网络”的使用会影响链接的显示方式?

我在运行Docker版本17.06.0-ce-mac18(18433)的macOS Sierra上。

2 个答案:

答案 0 :(得分:2)

请参阅Communication across links documentation

您可以使用Docker container命令获取Docker inspect的链接:

docker inspect -f "{{ .HostConfig.Links }}" <name_of_your_container>

让我们以容器web为例:

docker inspect -f "{{ .HostConfig.Links }}" web

输出如下内容:

  

[/分贝:/网络/分贝]

您可以看到web容器现已链接到db容器web/db

这里有更多documentation about docker inspect

答案 1 :(得分:2)

此命令显示 集成 网络中的容器。

argsAnywhere(cor.test.default)

更具体:

docker network inspect -f '{{json .Containers}}' integration | python -m json.tool

根据您的需要进行编辑。