官方api文档
https://docs.docker.com/reference/api/registry/latest/
Download OpenAPI specification
Docker - Registry
获取所有镜像列表,找到镜像的 name
curl -s http://127.0.0.1:5000/v2/_catalog
获取镜像tag
GET /v2/
curl -s http://127.0.0.1:5000/v2/<name>/tags/list | jq
获取manifest信息
GET /v2/
curl -s http://registry.local:5000/v2/flannel/flannel/manifests/v0.25.3 | jq
安装部署
# docker run \
-d \
-p 5000:5000 \
--restart always \
--name registry \
-v /data/registry-data:/var/lib/registry \
registry:2
部署带SSL证书的registry
- 创建目录
mkdir /data/docker.registry mkdir -p /data/docker.registry/etc/cert.d mkdir -p /data/docker.registry/var/lib/registry - install crt
复制registry.crt文件和registry.key文件到/data/docker.registry/etc/cert.d下面
# cp registry.crt /data/docker.registry/etc/cert.d/registry.crt # cp registry.key /data/docker.registry/etc/cert.d/registry.key - 创建服务
docker run -d \ --name registry \ -h registry \ -p 5000:5000 \ --memory 512m \ --memory-swap -1 \ --restart always \ -v /data/docker.registry/etc/cert.d:/etc/cert.d \ -v /data/docker.registry/var/lib/registry:/var/lib/registry \ -e REGISTRY_HTTP_TLS_CERTIFICATE=/etc/cert.d/registry.crt \ -e REGISTRY_HTTP_TLS_KEY=/etc/cert.d/registry.key \ docker.io/registry
- 创建目录
systemd 部署 registry 服务
下载二进制 registry 二进制下载地址
https://github.com/distribution/distribution/releases# chmod +x /usr/local/bin/registry设置 registry.service
/etc/systemd/system/registry.service[Unit] Description=registry - docker registry After=network-online.target Wants=network-online.target [Service] Type=simple Restart=always RestartSec=5 PIDFile=/var/run/registry.pid ExecStart=/usr/local/bin/registry serve /etc/docker/registry/config.yaml ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s TERM $MAINPID [Install] WantedBy=multi-user.target设置 config.yaml 文件
/etc/docker/registry/config.yamlversion: 0.1 loglevel: info http: addr: :5000 headers: Access-Control-Allow-Origin: ['*'] storage: delete: enabled: true filesystem: rootdirectory: /data/image_registry maxthreads: 500