由于 Docker 没有提供镜像重命名的功能,以下是如何通过三个命令来有效地重命名 Docker 镜像:
docker pull UglyOldTag
docker tag UglyOldTag ShinyNewTag
docker rmi UglyOldTag
注意:这其实只是添加一个新标签并删除旧标签。如上所述,标签实际上只是一个助记别名或指向图像ID字段的指针。如果这还不够混乱,Docker API和文档也经常使用“标签”来指代版本(即在镜像名称中紧跟着“:”的部分,比如MyImage**:**latest)。
然而,拼写错误和错误名称不是你可能想要重命名标签的唯一场所。例如,如果你正在使用Amazon的ECR,在你可以检查图像之前,需要将完整的ARN分配为标签。这意味着你的标签又大又丑!
注意:当您查看下面的示例时,请记住Amazon和DockerHub将每个docker映像层次结构都称为“存储库”。
# Create the ECR 'repository' for the image
aws ecr create-repository \
--repository-name myFavoriteTag \
--image-scanning-configuration scanOnPush=true \
--region myFavoriteRegion
docker tag myFavoriteTag:latest aws_account_id.dkr.ecr.aws_region.amazonaws.com/myFavoriteTag:latest
docker push aws_account_id.dkr.ecr.aws_region.amazonaws.com/myFavoriteTag:latest
因此,快速清除丑陋的方法是
ECR_BASE==aws_account_id.dkr.ecr.aws_region.amazonaws.com
docker pull ${ECR_BASE}/myFavoriteTag
docker tag ${ECR_BASE}/myFavoriteTag myFavoriteTag
docker rmi ${ECR_BASE}/myFavoriteTag
docker run myFavoriteTag
当然,要将其检查回ECR,您必须将丑陋的东西放回去。
docker tag ${ECR_BASE}/myFavoriteTag:latest