【Docker】搭建docker的私有仓库
一、为什么搭建私有仓库
docker hub虽然方便,但是还是有限制
- 需要internet连接,速度慢
- 所有人都可以访问
- 由于安全原因企业不允许将镜像放到外网
好消息是docker公司已经将registry开源,我们可以快速构建企业私有仓库
二、搭建简单的Registry仓库
1、下载registry
2、开启registry
[root@docker-node1 ~]# docker run -d -p 5000:5000 --restart=always --name registry registry
3、上传镜像到仓库中
给要上传的镜像打标签:
[root@docker-node1~]# docker tag busybox:latest 172.25.254.110:5000/busybox:latest
docker在上传的过程中默认使用https,但是我们并没有建立https认证需要的认证文件所以会报错:
[root@docker-node1 ~]# docker push 172.25.254.110:5000/busybox:latest
配置非加密端口:
[root@docker-node1 ~]# vim /etc/docker/daemon.json
重启服务:
[root@docker-node1 ~]# systemctl restart docker
上传镜像,并查看镜像上传:
三、Docker仓库数据传输加密
1、生成认证key和证书
2、启动registry仓库
3、打标签
4、测试
docker客 户端没有key和证书
5、为客户端建立证书,再进行测试
[root@docker docker]# mkdir /etc/docker/certs.d/reg.qisheng.org/ -p
[root@docker docker]# cp /root/certs/qisheng.org.crt /etc/docker/certs.d/reg.qisheng.org/ca.crt
[root@docker docker]# systemctl restart docker
四、Docker仓库用户认证
1、安装建立认证文件的工具包
[root@docker-node1 ~]# yum install httpd-tools -y
2、建立认证文件
[root@docker-node1 ~]# mkdir auth
[root@docker-node1 ~]# htpasswd -Bc auth/htpasswd qisheng
-B 强制使用最安全加密方式, 默认用md5加密
3、添加认证到registry容器中
4、登录测试
当仓库开启认证后必须登陆仓库才能进行镜像上传