Docker基础九(Registry 私有镜像仓库)

私有镜像仓库简介

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、生产容器容量估算

原文地址:https://www.cnblogs.com/lhanghang/p/13583613.html