在Docker中,容器可以通过以下几种方式进行标识和管理:
a3bc2d4f5e67
),实际使用时通常缩写为前12位(如 a3bc2d4f5e
)。docker ps
或 docker container ls
查看。bash
docker start a3bc2d4f5e # 使用ID启动容器
docker logs a3bc2d4f5e # 查看日志
my-web-server
)。--name
参数指定(如 docker run --name my-container
)。festive_minsky
)。bash
docker run --name my-app -d nginx # 启动时命名
docker stop my-app # 通过名称操作
bridge
、overlay
)内有效。--network-alias
指定(或Compose文件中定义)。bash
docker network create my-net
docker run --name app1 --network my-net --network-alias api -d nginx
api
访问该容器。<镜像名>:<标签>
(如 nginx:latest
或 my-image:v1.2
)。docker ps
的 IMAGE
列可查看容器使用的镜像。bash
docker run -d nginx:alpine # 使用特定镜像启动容器
docker ps | grep nginx # 过滤基于nginx的容器
environment=production
)。--label
参数或Compose文件添加元数据。docker ps --filter "label=env=prod"
)。bash
docker run --label owner=team-a -d nginx
docker ps --filter "label=owner=team-a"
my-container-host
)。--hostname
参数指定,默认为容器ID。bash
docker run --hostname app-host -d nginx
docker exec app-host hostname # 输出: app-host
1
为主进程)。docker top <容器>
查看。bash
docker top my-container
标识方式 | 作用范围 | 是否唯一 | 典型用途 |
---|---|---|---|
容器ID | 全局 | 是 | 精确操作容器 |
容器名称 | 单Docker主机 | 是 | 易读性操作 |
网络别名 | 指定Docker网络 | 是 | 服务发现 |
镜像名称+标签 | 间接关联 | 否 | 批量管理同类容器 |
自定义标签 | 全局 | 否 | 分类、过滤容器 |
主机名 | 容器内部 | 是 | 容器内网络通信 |
进程ID | 容器内部 | 是 | 调试进程 |
根据需求选择合适的标识方式,例如: - 精确控制:优先用容器ID或名称。 - 跨容器通信:使用网络别名。 - 批量管理:结合标签或镜像名称过滤。