介绍
介绍
大家已经跟着福哥学习了Docker私有仓库的搭建和基本使用方法了,现在有一个问题:如果仓库里面的镜像老了,想更新一下,怎么办呢?
Registry服务器的镜像是不支持更新操作的,如果要更新一个镜像只能先删除再重新push,今天福哥就带着大家学习如何删除Registry服务器里面的镜像,一起来吧~~
官方方法
复制config.yml
从registry容器里面将/etc/docker/registry/config.yml复制出来。
docker cp registry:/etc/docker/registry/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: 3
覆盖config.yml
将修改过的config.yml覆盖容器里面的。
docker cp config.yml registry:/etc/docker/registry/config.yml
重启仓库容器
docker restart registry
查询镜像标签列表
curl 'https://registry.tongfu.net:5000/v2/centos/tags/list'
终于删除掉了~~~
总结
Docker私有仓库Registry服务器删除镜像的坑还是真挺多的,最坑爹的莫过于官方的方法不能真正的删除服务器上面的镜像文件,只是把镜像的tags给干掉了而已,真是太恶心了~~
福哥推荐使用暴力方法删除镜像,这样既删除的彻底,又不用开启storage的delete开关,安全可靠~~