在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-host1 为主进程)。docker top <容器> 查看。bash
docker top my-container| 标识方式 | 作用范围 | 是否唯一 | 典型用途 |
|---|---|---|---|
| 容器ID | 全局 | 是 | 精确操作容器 |
| 容器名称 | 单Docker主机 | 是 | 易读性操作 |
| 网络别名 | 指定Docker网络 | 是 | 服务发现 |
| 镜像名称+标签 | 间接关联 | 否 | 批量管理同类容器 |
| 自定义标签 | 全局 | 否 | 分类、过滤容器 |
| 主机名 | 容器内部 | 是 | 容器内网络通信 |
| 进程ID | 容器内部 | 是 | 调试进程 |
根据需求选择合适的标识方式,例如: - 精确控制:优先用容器ID或名称。 - 跨容器通信:使用网络别名。 - 批量管理:结合标签或镜像名称过滤。