要判断一个容器是用了什么服务名,要看你使用的容器编排工具或运行方式:


一、Docker Compose 场景

示例:docker-compose.yml

services:
  redis:
    image: redis:7
  api:
    build: .
    depends_on:
      - redis

判断方法:

  1. 查看容器所属服务名:
sudo docker ps --format "table {{.Names}}\t{{.Label \"com.docker.compose.service\"}}"

输出类似:

NAMES          service
dsp-mysql      mysql
zookeeper      zookeeper
dsp-frontend   frontend
dsp-backend    backend
dsp-redis      redis
canal                   
kibana                  
es              

其中 com.docker.compose.service 就是服务名。

  1. 或直接 inspect 某个容器:
docker inspect <container_id or name> --format '{{ index .Config.Labels "com.docker.compose.service" }}'

二、Docker 单独启动(非 Compose)

如果你是用 docker run 单独启动的容器,那么它没有“服务名”的概念。

你可以:

docker inspect <container-id> | jq '.[0].Name'

但这种方式没有服务名,除非你自己用 --name--label 指定过。