如何从容器本身获取容器 ID

Anu*_*dha 5 docker docker-compose

我试图在启动时获取正在运行的容器的容器 ID。这是为了在服务运行状况检查 api 中使用该信息。

我在一组容器前面放置了一个负载均衡器,并通过https://service-n.api.com/health. 想法是通过 api 响应返回容器信息。

我正在使用 docker-compose 来启动 docker 容器,如果有一种方法可以将容器 id 作为环境变量传递给容器,那就太好了,如下所示。

version: '2'
services:
  web:
    image: my.registry.com/pq-api:1.0.0
    container_name: my-container
    ports:
      - 80:80
      - 443:443
    network_mode: bridge
    environment:
      CONTAINER_ID: "{{.ID}}"
Run Code Online (Sandbox Code Playgroud)

yam*_*enk 6

默认情况下,容器 ID 已可供环境变量内的所有容器使用HOSTNAME

$ docker run alpine env

   HOSTNAME=....
   ....
Run Code Online (Sandbox Code Playgroud)