搭建docker registry(私有仓库)
两台主机
host1 192.168.43.234
host2 192.168.43.235
host1操作并且验证
开启路由转发协议
[root@localhost ~]# vim /etc/sysctl.conf
添加
net.ipv4.ip_forward = 1
立即生效
[root@localhost ~]# sysctl -p
下载registry:2的镜像
[root@localhost ~]# docker pull registry:2
创建registry的家目录
[root@localhost ~]# mkdir -p /opt/data/registry
开启容器并且本地5000端口映射到容器5000端口
[root@localhost ~]# docker run -itd -p 5000:5000 --restart always -v /opt/data/registry/:/var/lib/registry --name registry registry:2
创建成功本地会多出一个5000的端口
[root@localhost ~]# netstat -anpt | grep 5000
tcp6 0 0 :::5000 ::😗 LISTEN 3631/docker-proxy
查看仓库
[root@localhost ~]# curl 192.168.43.234:5000/v2/_catalog
{“repositories”:[]}
让其他虚拟机可以访问到,则需要修改docker配置文件(主机1的IP)
[root@localhost ~]# vim /usr/lib/systemd/system/docker.service
--insecure-registry 192.168.43.234:5000
重新加载docker的配置文件并且重启docker
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker
修改httpd镜像名称并且上传
[root@localhost ~]# docker tag httpd:latest 192.168.43.234:5000/httpd
[root@localhost ~]# docker push 192.168.43.234:5000/httpd
查看镜像(去registry家目录可以查看)
[root@localhost repositories]# cd /opt/data/registry/docker/registry/v2/repositories
[root@localhost repositories]# ls
httpd
也可以通过命令查看
查看你registry的镜像,里面显示有httpd镜像
[root@localhost repositories]# curl 192.168.43.234:5000/v2/_catalog{“repositories”:[“httpd”]}
其它主机想要pull镜像的话,需要修改docker配置文件,指定私有库的IP:proxy
host2验证
添加并且开启路由转发协议
[root@localhost ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@localhost ~]# sysctl -p
修改docker的配置文件指定私有库的路径
[root@localhost ~]# vim /usr/lib/systemd/system/docker.service
重新加载docker的配置文件和重启docker
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker
进行查看
[root@localhost repositories]# curl 192.168.43.234:5000/v2/_catalog{“repositories”:[“httpd”]}
进行下载
[root@localhost ~]# docker pull 192.168.43.234:5000/httpd:指定版本号