首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从专用docker注册表拉取映像会导致摘要sha256的文件系统层验证失败:

从专用docker注册表拉取映像会导致摘要sha256的文件系统层验证失败:
EN

Stack Overflow用户
提问于 2021-09-30 16:38:46
回答 1查看 499关注 0票数 0

所以我有一个连接到私有docker注册表的Kubernetes集群。我在Kubernetes中的一个节点在拉取图像时总是失败。因此,我进入节点并尝试手动拉取图像。当我尝试拉取图像时,它失败了。我收到以下错误:摘要sha256的文件系统层验证失败:...

我尝试了以下帖子,但其中的解决方案都不起作用:filesystem layer verification failed for digest

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-30 16:38:46

我有一个私有的docker注册表,一个层在下载后没有通过验证,上面的解决方案对我都不起作用。

我做了以下操作,从私有docker注册表中删除图像和特定层。重新启动私有docker注册表。然后重新构建并再次推送映像。它应该会在之后工作。

要从私有docker注册表中删除标记,我使用以下脚本(Python):

代码语言:javascript
运行
复制
image = "yourimage"
tag = "yourtag"
host = "https://yourhost:5000" # change to http if you have no ssl
username = "yourusername"
password = "yourpassword"
res = requests.get("{}/v2/{}/manifests/{}".format(host, image, tag), auth=HTTPBasicAuth(username, password), verify=False, headers={
        "Accept": "application/vnd.docker.distribution.manifest.v2+json"
    })
digest = res.headers.get("Docker-Content-Digest").replace('"', "")
res = requests.delete("{}/v2/{}/manifests/{}".format(host, image, digest), auth=HTTPBasicAuth(username, password), verify=False)
    print(res.status_code)

要删除blob,您的blob摘要是sha256:....在验证时失败

代码语言:javascript
运行
复制
image = "yourimage"
host = "https://yourhost:5000" # change to http if you have no ssl
username = "yourusername"
password = "yourpassword"
blob_digest = "yourblobdigest"
res = requests.delete("{}/v2/{}/blobs/{}".format(host, image, blob_digest), auth=HTTPBasicAuth(username, password),
                      verify=False)

完成此操作后,转到私有docker注册表的容器并像这样删除镜像:

代码语言:javascript
运行
复制
rm /var/lib/registry/docker/registry/v2/repositories/your-repository-name

退出docker注册表并重新启动私有docker注册表容器。构建并推送映像,当您再次拉入时,一切都会正常进行。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69395952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档