【问题标题】:docker-compose get ID of a dockerdocker-compose 获取 docker 的 ID
【发布时间】:2015-06-16 14:53:52
【问题描述】:

我正在使用带有 docker-compose.yml 文件的 docker-compose。

有没有办法进入 .yml,另一个 docker 的 ID(在同一个 docker-compose.yml 中)?

docker-compose.yml:

containerA:
  command: python -u catch_sig.py 
  volumes: 
    - /workspace:/app
containerB:
  command: echo -e "POST /containers/containerA/kill?signal=SIGUSR1 HTTP/1.0\r\n" | nc -U /tmp/docker.sock

【问题讨论】:

  • 你打算用这个ID做什么?
  • 它将用于发送自动信号。
  • 另一个需要 ID 的原因是像 docker logs

标签: docker docker-compose


【解决方案1】:

使用较新的 docker-compose 版本(我有 1.8.0),您可以这样做

$ docker-compose ps -q

这只会显示 id。 查看用法。

 $ docker-compose ps --help
 List containers.

 Usage: ps [options] [SERVICE...]

 Options:
   -q    Only display IDs

【讨论】:

  • 没有办法显示名字和他们的ID吗?
  • @Sankalp 你可以使用这个命令:docker-compose ps --services | awk '{ print "echo -n \""$1": \" ; docker-compose ps -q "$1 }' | bash。我在这里描述了细节:zinovyev.net/list-docker-compose-service-ids
【解决方案2】:

可以通过这种方式获取容器的ID:

docker-compose ps -q [container-name]

【讨论】:

  • 仅供参考,您必须从 docker-compose ps 返回的名称中去除多余的内容,以获取底层容器名称 - 它应该是 docker-compose.yml 文件中所写的名称。
【解决方案3】:

获取所有 Ids 容器:

docker-compose ps -q

如果您需要一个 ID:

docker-compose ps -q some_name_container_in_yml_file

【讨论】:

    【解决方案4】:

    不确定 .yml 文件,但如果链接容器,则可以从 /etc/hosts 获取 ID,如 docs 中所写。也许这会有所帮助。

    【讨论】:

    • 不,谢谢,这不是我所期望的。更准确地说,我希望传入命令(在 docker-compose.yml 中),即我在同一文件中构建的另一个容器的 ID。那么有没有办法设置容器ID,或者在同一个docker-compose中使用容器描述的名称获取容器ID。 yml 文件?
    • 看来你可以给容器一个名字,连同ID,它们可以互换使用。因此,您可以通过 ENV 变量将一个容器 ID 的名称传递给第二个容器。有帮助吗?
    • 我会给你看我的 docker-compose 文件,这样会更容易。
    • 根据此讨论:github.com/docker/compose/issues/652,不支持 docker 容器的显式名称,但将支持。现在容器构建为:__n,因此如果您运行它的文件夹命名为 lol 并且运行单个实例,它将是:lol_containerA_1。看来我能帮到你的就只有这些了。
    【解决方案5】:

    您可以将 Docker 客户端添加到 containerB,然后将 DOCKER_HOST 环境设置为底层主机(请务必配置其设置,使其接受网络上的 TCP 连接)。然后,您可以使用容器名称执行docker inspect containerA 来识别您正在查询的主机。

    这应该为您提供 containerA 的容器 ID。

    【讨论】:

      猜你喜欢
      • 2017-09-07
      • 1970-01-01
      • 2021-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-09
      • 1970-01-01
      相关资源
      最近更新 更多