赞
踩
首先列出docker registry官方API的地址:Registry API,然后还有使用手册:Docker Registry。
1、开始一个registry:
- docker run -d -p 5000:5000 \
- --name registry --restart=always \
- -v 'pwd'/registry:/var/lib/registry \
- registry:2
如果需要配置文件的话,则加上配置文件挂载。(config详细信息)
- docker run -d -p 5000:5000 \
- --name registry --restart=always \
- -v 'pwd'/registry:/var/lib/registry \
- -v 'pwd'/config.yml:/etc/docker/registry/config.yml \
- registry:2
2、配置daemon.json,/etc/docker/daemon.json增加一行,然后systemctl restart docker:
- {
- "insecure-registries": ["127.0.0.1:5000"]
- }
3、上传一个镜像
先要给本地镜像重新tag,例如下面的test是待上传的镜像,localhost:5000/my_test是tag之后的
docker image tag test localhost:5000/my_test
然后docker push localhost:5000/my_test。
1、查看API是否可用:curl -I -X GET localhost:5000/v2/,返回200 OK代表可用。
2、查看所有镜像:curl -X GET localhost:5000/v2/_catalog
3、获取一个镜像的manifest:
curl -I -X GET localhost:5000/v2/<name>/manifests/<reference>,
<name>代表镜像名,reference可以使用tag或digest。
4、查看一个镜像是否存在:
curl -I -X HEAD localhost:5000/v2/<name>/manifests/<reference>,会返回以下信息
- 200 OK
- Content-Length: <length of manifest>
- Docker-Content-Digest: <digest>
5、下载单个镜像层:
curl -X GET localhost:5000/v2/<name>/blobs/<digest>
6、删除一个镜像
curl -I -X DELETE localhost:5000/v2/<name>/manifests/<reference>,不过删除一个镜像需要加一个header,如下:
curl -I --header "Accept: application/vnd.docker.distribution.manifest.v2+json" -X DELETE localhost:5000/v2/<name>/manifests/<reference>.
同时还需要在配置中许可删除操作,修改配置文件,在storage下添加delete的许可
- storage:
- delete:
- enabled: true
还有一些其他的,可以去看Registry API的文档
目录分为两层:blobs和repositories。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。