我已经对其他问题发布了相同的答案。也许它对你有用。
我的注册表也遇到了同样的问题,然后我从博客页面尝试了下面列出的解决方案。有用。
第 1 步:列出目录
您可以通过调用以下网址列出您的目录:
http://YourPrivateRegistyIP:5000/v2/_catalog
响应将采用以下格式:
{
"repositories": [
<name>,
...
]
}
步骤 2:列出相关目录的标签
您可以通过调用以下网址列出目录的标签:
http://YourPrivateRegistyIP:5000/v2/<name>/tags/list
响应将采用以下格式:
{
"name": <name>,
"tags": [
<tag>,
...
]
}
步骤 3:列出相关标签的清单值
您可以在 docker 注册表容器中运行此命令:
curl -v --silent -H "Accept: application/vnd.docker.distribution.manifest.v2+json" -X GET http://localhost:5000/v2/<name>/manifests/<tag> 2>&1 | grep Docker-Content-Digest | awk '{print ($3)}'
响应将采用以下格式:
sha256:6de813fb93debd551ea6781e90b02f1f93efab9d882a6cd06bbd96a07188b073
使用清单值运行下面给出的命令:
curl -v --silent -H "Accept: application/vnd.docker.distribution.manifest.v2+json" -X DELETE http://127.0.0.1:5000/v2/<name>/manifests/sha256:6de813fb93debd551ea6781e90b02f1f93efab9d882a6cd06bbd96a07188b073
步骤 4:删除标记的清单
在 docker 注册表容器中运行此命令:
bin/registry garbage-collect /etc/docker/registry/config.yml
这是我的 config.yml
root@c695814325f4:/etc# cat /etc/docker/registry/config.yml
version: 0.1
log:
fields:
service: registry
storage:
cache:
blobdescriptor: inmemory
filesystem:
rootdirectory: /var/lib/registry
delete:
enabled: true
http:
addr: :5000
headers:
X-Content-Type-Options: [nosniff]
health:
storagedriver:
enabled: true
interval: 10s
threshold: 3