Docker 的 tag
是一个非常重要的概念,主要用于标识和管理镜像的不同版本或变体。以下是它的核心作用及使用场景:
nginx:1.21
和 nginx:1.22
)。prod
、dev
、test
)。arm64
、amd64
)。nginx:latest
和 nginx:1.23
可指向同一镜像)。docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
示例:
# 为本地镜像添加新标签
docker tag nginx:latest myregistry/nginx:v1
docker tag local-image:latest your-registry.com/project/image:v1
docker push your-registry.com/project/image:v1
# 发现v2有问题,快速回退到v1
docker run your-app:v1
docker build -t myapp:prod . # 生产环境镜像
docker build -t myapp:dev . # 开发环境镜像
:latest
:默认标签,但生产环境建议明确指定版本。<none>
:当镜像失去所有标签时会出现(可通过 docker image prune
清理)。# 查看镜像的所有标签
docker image ls --filter=reference='nginx:*'
# 删除标签(实际是删除镜像的某个引用)
docker rmi nginx:old-tag
latest
:明确版本号(如 python:3.9-slim
)更可靠。项目名-版本-环境
(如 app-backend:v2-prod
)。git commit hash
作为标签)。通过合理使用标签,可以显著提升 Docker 镜像管理的效率和可靠性。