当集群内使用registry做为镜像仓库时,镜像长期积累会导致本地和远程仓库镜像占用大量的磁盘空间,这时我们需要对一些无用镜像进行定期清理。
一、部署registry
1.1 开启删除功能
从registry容器里面将/etc/docker/registry/config.yml复制出来:
docker cp registry:/etc/docker/registry/config.yml ./config.yml
默认config.yml内容如下:
version: 0.1
log:
fields:
service: registry
storage:
cache:
blobdescriptor: inmemory
filesystem:
rootdirectory: /var/lib/registry
http:
addr: :5000
headers:
X-Content-Type-Options: [nosniff]
health:
storagedriver:
enabled: true
interval: 10s
threshold: 3
设置config.yml,在storage节点添加delete配置设置为true。
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: 31234567891011121314151617181920
1.2 启动registry容器
docker run -it -d --name registry -p 5000:5000 -v /opt/registry/:/var/lib/registry -v /etc/docker/registry/config.yml:/etc/docker/registry/config.yml --restart=always registry
1.3 查看镜像名称
curl -s -XGET localhost:5000/v2/_catalog | python -mjson.tool
1.4 查看镜像tag
curl -s XGET localhost:5000/v2/test/tags/list|jq
1.5 查看镜像reversion
ll /opt/registry/docker/registry/v2/repositories/test/_manifests/revisions/sha256/
#或者通过API获取镜像digest值
curl -i -sS -H 'Accept: application/vnd.docker.distribution.manifest.v2+json' 'http://localhost:5000/v2/test/manifests/latest'
1.6 删除镜像
curl -X DELETE localhost:5000/v2/test/manifests/sha256:703c4d81c860a7420749f6666aac348e1b62a07062865dfb91d4c30819483e70
1.7 垃圾回收
docker exec -it 9658cbb01b13 registry garbage-collect /etc/docker/registry/config.yml
1.8 清除目录
rm -rf /var/lib/docker/volumes/78c1937e0a8c810c8e4249d0245b4777ac4e66428519376712d99b811e559758/_data/docker/registry/v2/repositories/test_his_platform_global_api_2022-02-18-02-46
二、web-ui管理registry
docker hub 地址:https://hub.docker.com/r/hyper/docker-registry-web
2.1 部署docker-registry-web
docker pull hyper/docker-registry-web
(此配置中的任何属性都可能被环境变量覆盖,例如属性registry.auth.enabled将变为REGISTRY_AUTH_ENABLED)
registry:
# Docker registry url
url: http://10.0.0.100:5000/v2
# Docker registry fqdn
name: localhost:5000
# To allow image delete, should be false
readonly: false
auth:
# Disable authentication
enabled: false
使用 docker 运行
docker run -p 5000:5000 --name registry -d registry:2
docker run -it -p 8083:8080 --name registry-web --link registry -v $(pwd)/config.yml:/conf/config.yml:ro hyper/docker-registry-web
访问http://localhost:8083
文章来源:https://www.toymoban.com/news/detail-500655.html
2.2 使用web ui删除镜像
文章来源地址https://www.toymoban.com/news/detail-500655.html
到了这里,关于docker registry删除远程仓库镜像的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!