8.0 私有镜像仓库简介
Docker Registry:官方docker镜像存储、管理和分发工具。
部署私有仓库可以解决以下问题:
1) 下载镜像时所带来的网络延时。
2) 方便镜像版本的更新与维护
3)部署私有应用程序
8.1 私有镜像仓库工作流程
1)用户本地构建镜像,将镜像推送到Registry仓库.
2) Docker 用户使用的时候,直接从Registry 下载, 无须从Docker Hub 下载.
8.2 搭建私有仓库
官方提供的私有仓库镜像,无需调整,直接使用。将宿主机目录挂载到容器中,提供数据持久化。镜像名称:registry,默认使用 新版。 #挂载宿主机/opt/myregistry目录到容器目录/var/lib/registry [root@docker01 ~]# docker run -d -p 5000:5000 --restart=always --name registry -v /opt/myregistry:/var/lib/registry registry
/
8.3 上传本地镜像至私有仓库
#给镜像打tag 标签,要写全镜像仓库地址。 [root@master mnt]# docker image tag centos:latest 192.168.91.8:5000/centos7:v1.0 #上传镜像到私有仓库 [root@master mnt]# docker push 192.168.91.8:5000/centos7:v1.0 注:报错 The push refers to repository [192.168.91.8:5000/centos7] Get https://192.168.91.8:5000/v2/: http: server gave HTTP response to HTTPS client 出现https 错误解决方法有两种: 1) 修改Docker 节点配置文件 (本案例中) 2) 添加Nginx 反向代理 解决办法:修改配置文件,建立信任 [root@docker01 ~]# vi /etc/docker/daemon.json { "insecure-registries": ["192.168.91.8:5000"] } #重启docker 服务 [root@docker01 ~]# systemctl restart docker #再次推送镜像 [root@master mnt]# docker push 192.168.91.8:5000/centos7:v1.0 The push refers to repository [192.168.91.8:5000/centos7] 0683de282177: Pushing [========> ] 38.8MB/237.1MB
/
8.4 查看私有仓库镜像列表
[root@master mnt]# curl http://192.168.91.8:5000/v2/_catalog
{"repositories":["centos7"]}
8.5 删除私有仓库中镜像
/
1)进入docker registry 的容器中 [root@docker01 ~]# docker exec -it registry /bin/sh 2) 删除指定镜像目录文件 / # rm -fr /var/lib/registry/docker/registry/v2/repositories/centos7 3) 清理掉blob / # registry garbage-collect /etc/docker/registry/config.yml 4) 再次查看版本库 [root@master mnt]# curl http://192.168.91.8:5000/v2/_catalog {"repositories":[]}