私有镜像仓库简介
Docker Registry:官方docker镜像存储、管理和分发工具。
部署私有仓库可以解决以下问题:
1、下载镜像时所带来的网络延时。
2、方便镜像版本的更新与维护
3、部署私有应用程序
一、私有镜像仓库工作流程
1、用户本地构建镜像,将镜像推送到Registry仓库.
2、Docker 用户使用的时候,直接从Registry 下载, 无须从Docker Hub 下载.
二、搭建私有仓库
官方提供的私有仓库镜像,无需调整,直接使用。将宿主机目录挂载到容器中,提供数据 持久化。
镜像名称:registry,默认使用最新版。
挂载宿主机/opt/myregistry目录到容器目录/var/lib/registry
[root@master ~]# docker image tag centos:latest 172.16.73.159:5000/centos7:v1.0
三、上传本地镜像至私有仓库
给镜像打tag 标签,要写全镜像仓库地址。
[root@master ~]# docker run -d -p 5000:5000 --restart=always --name registry -v /opt/myregistry:/var/lib/registry registry
注意:报错信息
The push refers to repository [172.16.73.159:5000/centos7] Get https://172.16.73.159:5000/v2/: http: server gave HTTP response to HTTPS client
出现https 错误解决方法有两种:
1、修改Docker 节点配置文件 (本案例中)
2、添加Nginx 反向代理
解决办法:修改配置文件,建立信任 [root@master ~]# cat /etc/docker/daemon.json { "registry-mirrors":["https://plqjafsr.mirror.aliyuncs.com"], "insecure-registries": ["192.168.91.8:5000"] # 添加这条 }
重启docker 服务
[root@master ~]# systemctl restart docker
重新推送镜像
[root@master ~]# docker push 172.16.73.159:5000/centos7:v1.0 The push refers to repository [172.16.73.159:5000/centos7] 291f6e44771a: Pushed v1.0: digest: sha256:fc4a234b91cc4b542bac8a6ad23b2ddcee60ae68fc4dbd4a52efb5f1b0baad71 size: 529
4、查看私有仓库镜像列表
[root@master ~]# curl http://172.16.73.159:5000/v2/_catalog {"repositories":["centos7"]}
5、删除私有仓库中镜像
1、进入docker registry 的容器中
[root@master ~]# docker exec -it registry /bin/sh
2、删除指定镜像目录文件
/ # rm -rf /var/lib/registry/docker/registry/v2/repositories/centos7/
3、清理掉blob
/ # registry garbage-collect /etc/docker/registry/config.yml 0 blobs marked, 3 blobs and 0 manifests eligible for deletion blob eligible for deletion: sha256:0d120b6ccaa8c5e149176798b3501d4dd1885f961922497cd0abef155c869566 INFO[0000] Deleting blob: /docker/registry/v2/blobs/sha256/0d/0d120b6ccaa8c5e149176798b3501d4dd1885f961922497cd0abef155c869566 go.version=go1.11.2 instance.id=e0d36e01-e7b5-47a6-8345-c5ec637069b9 service=registry blob eligible for deletion: sha256:3c72a8ed68140139e483fe7368ae4d9651422749e91483557cbd5ecf99a96110 INFO[0000] Deleting blob: /docker/registry/v2/blobs/sha256/3c/3c72a8ed68140139e483fe7368ae4d9651422749e91483557cbd5ecf99a96110 go.version=go1.11.2 instance.id=e0d36e01-e7b5-47a6-8345-c5ec637069b9 service=registry blob eligible for deletion: sha256:fc4a234b91cc4b542bac8a6ad23b2ddcee60ae68fc4dbd4a52efb5f1b0baad71 INFO[0000] Deleting blob: /docker/registry/v2/blobs/sha256/fc/fc4a234b91cc4b542bac8a6ad23b2ddcee60ae68fc4dbd4a52efb5f1b0baad71 go.version=go1.11.2 instance.id=e0d36e01-e7b5-47a6-8345-c5ec637069b9 service=registry
4、再次查看版本库
[root@master mnt]# curl http://172.16.73.159:5000/v2/_catalog {"repositories":[]}
6、生产容器容量估算