目录
一、搭建本地仓库
1、首先下载registry镜像
2、在daemon.json文件中添加私有镜像仓库地址
3、运行registry容器
4、为镜像打标签
5、上传到私有仓库
6、列出私有仓库的所有镜像
7、列出私有仓库的centos 镜像有哪些tag
8、先删除原有的centos的镜像,再测试私有仓库下载
DockerHub为我们提供了很多官方镜像和个人上传的镜像,我们可以下载机构或个人提供的镜像,也可以上传我们自己的本地镜像,但缺点是: ● 由于网络的原因,从DockerHub下载和上传镜像速度可能会比较慢; ● 在生产上使用的Docker镜像可能包含我们的代码、配置信息等,不想被外部人员获取,只允许内网的开发人员下载。
为了解决以上问题,Docker 官方提供了一个叫做 registry 的镜像用于搭建本地私有仓库使用。在内部网络措建的Docker 私有仓库可以使内网人员下载、上传都非常快速, 不受外网带宽等因素的影响,同时不在内网的人员也无法下载我们的镜像,并且私有仓库也支持配置仓库认证功能。接下来详细讲解registry 私有仓库的搭建过程。
一、搭建本地仓库
1、首先下载registry镜像
拉取私有仓库镜像。 docker pull registry 12
2、在daemon.json文件中添加私有镜像仓库地址
vim /etc/docker/daemon.json 添加以下内容,用于让Docker信任私有仓库地址,保存退出。 { ...... "insecure-registries": ["192.168.110.10:5000"], "registry-mirrors": ["https://07s6n5p5.mirror.aliyuncs.com"] } 12345678 #重新加载某个服务的置文件 systemctl daemon-reload #重新启动docker systemctl restart docker 12345
3、运行registry容器
docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest -itd: 在容器中打开一-个伪终端进行交互操作,并在后台运行 -v:把宿主机的/data/registry目录绑定到容器/var/lib/ registry目录(这个目录是registry容器中存放镜像文件的目录),来实现数据的 持久化; -p:映射端口;访问宿主机的5000端口就访问到registry容器的服务了 --restart=always:这是重启的策略,在容器退出时总是重启容器 --name registry: 创建容器命名为registry registry:latest:这个是刚才pull下来的镜像 123456789
no:默认策略,在容器退出时不重启容器 on-failure:在容器非正常退出时(退出状态非0),才会重启容器 on- failure:3:在容器非正常退出时重启容器,最多重启3次 always:在容器退出时总是重启容器 unless-stopped:在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器
4、为镜像打标签
docker tag centos:7 192.168.110.10: 5000/centos:v1 1
5、上传到私有仓库
docker push 192.168.110.10:5000/centos:v1 1
6、列出私有仓库的所有镜像
curl http://192.168.110.10:5000/v2/_catalog 1
7、列出私有仓库的centos 镜像有哪些tag
curl http://192.168.110.10:5000/v2/centos/tags/list 1
8、先删除原有的centos的镜像,再测试私有仓库下载
docker rmi -f 8652b9f0cb4c docker pull 192.168.110.10:5000/centos:v1 12