docker-compose 获取 docker 的 ID

pie*_*elb 7 docker docker-compose

我正在使用 docker-compose 和 docker-compose.yml 文件。

有没有办法进入 .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
Run Code Online (Sandbox Code Playgroud)

Vol*_*erK 8

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

$ docker-compose ps -q
Run Code Online (Sandbox Code Playgroud)

这只会显示id。看用法。

 $ docker-compose ps --help
 List containers.

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

 Options:
   -q    Only display IDs
Run Code Online (Sandbox Code Playgroud)

  • 没有任何方法可以显示名称及其 ID 吗? (8认同)
  • @Sankalp你可以使用这个命令:`docker-compose ps --services | awk '{ print "echo -n \""$1": \" ; docker-compose ps -q "$1 }' | bash`。我在这里描述了详细信息:https://zinovyev.net/list-docker-compose-service-ids (5认同)

小智 6

您可以通过以下方式获取容器的 ID:

docker-compose ps -q [container-name]
Run Code Online (Sandbox Code Playgroud)


Eli*_*jah 0

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

这将为您提供容器 A 的容器 ID。