docker官方文档:https://docs.docker.com/registry/
主机 IP
docker仓库机——master 192.168.11.128
docker客户机——server 192.168.11.129
前提准备:
主机都必须都安装好了docekr,不然没法实验
一、关闭防火墙、selinux
systemctl stop firewalld.service
systemctl disable firewalld.service
sed -i 's/SELINUX=.*/SELINUX=disabled/'/etc/sysconfig/selinux(永久关闭selinux)
二、搭建私有仓库registr:
maste端:docker pull registry
三、master端启动docker私有仓库镜像
命令:docker run --privileged -d -v /registry:/var/lib/registry -p5000:5000 --restart=always --name registry registry:latest
上面命令的参数部分内容解释:
privileged: 表示相当于拥有超级用户的权限
/registry:/var/lib/registry: 左边的为宿主机的目录绝对,当目录不存在的时候会自动创建其目录,右边的是容器的目录绝对路径
--restart=always: 不管退出状态码是什么始终重启容器。当指定always时,docker daemon将无限次数地重启容器。容器也会在daemon启动时尝试重启,不管容器当时的状态如何。
注解:
wordpress:latest : 制作软件包名:版本
192.168.11.128:5000/wordpress:latest:192.168.11.128:5000这个是docker私有仓库名和端口
wordpress:latest: 镜像名字:版本号
为什么要制作软件包的时候前面要加docker个人账号呢?可以查看这篇文章
https://blog.csdn.net/baidu_19473529/article/details/70156144
六、将打好标签的镜像上传到docker私有仓库:
命令:docker push 192.168.11.128:5000/wordpress
对于上面的报错,进行配置即可:
注意:
docker比较特殊吧,重新加载docker配置文件使用命令: systemctl daemon-reload
解释:v2/_catalog目录
curl http://192.168.11.128:5000/相当于我们cd到了容器的/var/lib/registry目录下,我们上面将registry镜像做了一个卷挂载,所以现在去/registry目录下查看就知道了
命令:tree
七、客户端操作
下载镜像:
现在再次下载httpd镜像:docker pull 192.168.11.128:5000/httpd:v1
上传镜像:
3、上传镜像到docker私仓:
命令:docker push 192.168.11.128:5000/busybox:latest
4、查看docker私仓:
docker上传下载成功,简单的搭建完成