
Docker Registry 详解
基本介绍
博主在【Docker】专题一:Docker 基本架构 中介绍过 Docker Registry,它是 Docker 镜像仓库,用于存放和管理 Docker 镜像。
本文将专题介绍本地镜像仓库的创建方法、API 请求、镜像清理等内容。
Registry 创建方法
使用 DockerHub 上 Registry 官方镜像直接运行容器即可,并挂载本地数据目录。
# 创建容器并后台运行,设置目录、端口映射docker run -d \-p 5000:5000 \-v /var/lib/local_registry:/var/lib/registry \--name local_registry \registry:latest # docker ps 查看容器状态# 此时私有镜像名称格式为:127.0.0.1:5000/test:latest
Registry 常用 API 请求
附官方文档地址:Registry | Docker Docs
# 查看 repository 列表curl 127.0.0.1:5000/v2/_catalog # 查看镜像 tag 列表curl 127.0.0.1:5000/v2/<repository>/tags/list # 查看镜像 tag 对应的 digestcurl -s 127.0.0.1:5000/v2/<repository>/manifests/<tag> -I -H 'Accept: application/vnd.docker.distribution.manifest.v2+json' | grep Docker-Content-Digest | awk '{print $NF}' | tr -d '\r'
Registry 镜像清理
1、前提条件
需要在 /etc/docker/registry/config.yml 文件中配置允许删除镜像(storage.delete.enabled)。
version: 0.1log: fields: service: registrystorage: cache: blobdescriptor: inmemory filesystem: rootdirectory: /var/lib/registry # 添加 delete 字段,允许删除镜像 delete: enabled: truehttp: addr: :5000 headers: X-Content-Type-Options: [nosniff]health: storagedriver: enabled: true interval: 10s threshold: 3
运行 Registry 容器时挂载该配置文件即可:
docker run -d \-p 5000:5000 \-v /var/lib/local_registry:/var/lib/registry \-v /etc/docker/config.yml:/etc/docker/registry/config.yml--name local_registry \registry:latest
2、清理步骤
# 第一步:参考常用 API 请求,自行获取镜像的 repository 和 digest 信息 # 第二步:删除镜像curl -I -XDELETE 127.0.0.1:5000/v2/<repository>/manifests/<digest> # 第三步:垃圾回收docker exec local_registry bin/registry garbage-collect /etc/docker/registry/config.yml
🔔 官方说明:删除镜像时必须指定 digest 信息而非 tag 信息。
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 咸鱼博客
评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果