docker镜像被覆盖了怎么办?通过sha256重新上传镜像
如果一个镜像通过相同的标签被重新推送(覆盖),那么旧的镜像内容虽然在 Docker 的存储中可能仍然存在,但通过原来的标签将无法直接访问到它。Docker 和 Harbor 默认情况下不会自动删除旧的镜像层,除非进行了垃圾回收(Garbage Collection)。因此,在某种程度上,你有可能找回旧的镜像层,但这需要一些操作。
- 检查本地是否有旧镜像
首先检查你的本地机器是否已经拉取了旧版本的镜像。如果你之前已经拉取过该镜像,并且没有删除它,你可以通过以下命令查看:
docker images --digests
查找与 sha256:079474e205ef280a5ce1 相关的条目。如果有找到,你可以直接使用它。
如果没有,找其他服务器上的sha256,当然前提是你打镜像的时候要记录之前的镜像是多少?
第一步 拉镜像
docker pull harbor.com/ra-resource@sha256:079474e205ef280a5ce1
第二步 查看镜像的IMAGE ID
[测试环境 root@s01cq-]# docker images --digests |grep 079474e205ef280a5ce1
第三步 给镜像打tag
docker tag e6b6aa6d3745 www.harbor.com/test/ra-resource:v0.1.1
第四步 推送镜像
docker push www.harbor.com/test/ra-resource:v0.1.1
第五步 验证
登录到被推送的服务器,查看tag和sha256看是否一致
docker images --digest | grep ra-resource