由于 Docker 不提供镜像重命名功能,以下是如何通过三个命令有效地重命名 docker 镜像:
docker pull UglyOldTag
docker tag UglyOldTag ShinyNewTag
docker rmi UglyOldTag
注意:这实际上只是添加一个新标签并删除旧标签。如上所述,标签实际上只是一个助记别名或指向图像 ID 字段的指针。如果这还不够令人困惑,Docker API 和文档也经常使用“ tag ”来指代版本(即“ : ”之后的图像名称部分,如在 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