centos 7搭建docker私有镜像仓库_sealir的博客-爱代码爱编程
一、环境
CentOS | 7.5 |
Linux内核 | 3.10.0 |
Docker | 18.06.0-ce |
二、安装Docker Registry
1、配置Docker启动参数
在Docker启动参数中添加如下参数,即开放非安全端口5000,192.168.0.99是宿主机IP,重启Docker。
--insecure-registry 192.168.0.99:5000
2、启动registry容器
首先下载registry镜像,安装docker时,配置了阿里云镜像加速器,因此从阿里云下载镜像。
docker pull registry
生成配置文件/etc/docker/registry-config.yml,内容如下:
version: 0.1
log:
fields:
service: registry
storage:
delete:
enabled: true
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
storage.delete.enabled=true设置镜像可删除,接下来启动registry容器,执行如下命令:
docker run -d -p 5000:5000 --restart=always --privileged=true -v /etc/docker/registry-config.yml:/etc/docker/registry/config.yml -v /etc/docker/hub:/var/lib/registry --name docker-registry registry
--restart=always设置重启策略,这里设置为退出后自动重启,
--privileged=true开放系统权限,
-v /etc/docker/registry-config.yml:/etc/docker/registry/config.yml挂载配置文件,
-v /etc/docker/hub:/var/lib/registry放系统/etc/docker/hub目录挂载到容器的/var/lib/registry目录,是存储镜像的目录。
--name docker-registry定义容器名称
三、使用私有仓库
在其他安装了Docker的主机中配置如下启动参数并重启。
--insecure-registry 192.168.0.99:5000
以busybox镜像为例,说明私有仓库的使用
1、将busybox镜像上传到私有仓库
docker tag busybox 192.168.0.99:5000/busybox #重新将busybox打tag
docker push 192.168.0.99:5000/busybox #将镜像上传到私有仓库
2、从私有镜像仓库中下载busybox镜像
docker pull 192.168.0.99:5000/busybox
3、查询私有仓库中的镜像
curl http://192.168.0.99:5000/v2/_catalog
返回结果:{"repositories":["busybox"]}
4、查询busybox镜像版本
curl http://192.168.0.99:5000/v2/busybox/tags/list
返回结果:{"name":"busybox","tags":["latest"]}
5、删除私仓库中的镜像
curl --header "Accept: application/vnd.docker.distribution.manifest.v2+json" -I -X HEAD http://cloud-i:5000/v2/resource/manifests/1.0 #查询sha256值
curl -I -X DELETE http://cloud-i:5000/v2/resource/manifests/sha256:<sha256> #删除sha256对应的镜像