Docker部署私有仓库registry

嚯嚯嚯www 35 2022-08-26

已安装好两台docker服务机
主192.168.1.10/centos7
从192.168.1.11/centos7

主配置docker段服务器

master启动docker服务
93994-1d2f3wese44.png

加载一些准备好的本地镜像到docker,registry为必要上传的镜像

docker load -i images/busybox_latest.tar
docker load -i images/centos_latest.tar
docker load -i images/httpd_latest.tar
docker load -i images/nginx_latest.tar
docker load -i images/portainer_portainer_latest.tar
docker load -i images/python_3.7-alpine.tar
docker load -i images/redis_alpine.tar
docker load -i images/registry_latest.tar
docker load -i images/swarm_latest.tar

91900-0fftu3jxq7o5.png

Dock run命令运行本地registry

[root@master opt]# docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest
66df904e9c221ca8e412a32e479d9f8331a7d9b5dc401554141a5b74e0b6e8e9

-d 容器运行于后台
-v 挂载文件目录,主机:容器
-p 容器端口映射外部
–restart=always 容器退出时总是重启
–name 容器名字

Docker ps查询容器进程
68678-qinrb4r3q2.png
查看registry端口映射监听
43400-upb7j9bd2pj.png

测试

使用curl命令访问网页地址,返回结果为{}表示registry正常运行

[root@master opt]# curl http://192.168.1.10:5000/v2/ -v
* About to connect() to 192.168.1.10 port 5000 (#0)
*   Trying 192.168.1.10...
* Connected to 192.168.1.10 (192.168.1.10) port 5000 (#0)
> GET /v2/ HTTP/1.1
> User-Agent: curl/7.29.0
> Host: 192.168.1.10:5000
> Accept: */*
> 
< HTTP/1.1 200 OK
< Content-Length: 2
< Content-Type: application/json; charset=utf-8
< Docker-Distribution-Api-Version: registry/2.0
< X-Content-Type-Options: nosniff
< Date: Fri, 17 Jan 2020 16:10:07 GMT
< 
* Connection #0 to host 192.168.1.10 left intact
{}

85598-jly4hfohddm.png

新建/etc/docker/daemon.json配置文件,写入以下内容,设置私有仓库地址,并重启服务

[root@master docker]# vim /etc/docker/daemon.json

04033-v4tsszz6ez.png

[root@master docker]# systemctl restart docker

Docker images命令查询当前docker中的镜像
72793-1wqfdsaa2fe.png

#docker tag给centos镜像设置标记

[root@master docker]# docker tag centos:latest 192.168.1.10:5000/centos:latest
#docker push将镜像推送到私有仓库
[root@master docker]# docker push 192.168.1.10:5000/centos:latest
The push refers to repository [192.168.1.10:5000/centos]
9e607bb861a7: Pushed 
latest: digest: sha256:6ab380c5a5acf71c1b6660d645d2cd79cc8ce91b38e0352cbf9561e050427baf size: 529

37853-p5d4tazflsb.png
测试推送是否成功
使用curl命令访问

[root@master docker]# curl http://192.168.1.10:5000/v2/_catalog
{"repositories":["centos"]}

73675-03vdpgc4w9g3.png

另一docker测试服务器端

Docker服务正常运行
92290-rzjkp2kpxdo.png

新建/etc/docker/daemon.json配置文件,写入以下内容,设置私有仓库地址,并重启服务

[root@slave ~]# cd /etc/docker/
[root@slave docker]# touch daemon.json
[root@slave docker]# vim daemon.json

10412-bj05rmdck89.png

[root@slave docker]# systemctl restart docker

#使用docker pull拉取刚刚仓库中标记推送的镜像

[root@slave docker]# docker pull 192.168.1.10:5000/centos:latest
latest: Pulling from centos
729ec3a6ada3: Pull complete 
Digest: sha256:6ab380c5a5acf71c1b6660d645d2cd79cc8ce91b38e0352cbf9561e050427baf
Status: Downloaded newer image for 192.168.1.10:5000/centos:latest

Docker images查询镜像,镜像已经存在本地docker服务器中
79125-a63mh5guf8.png