• 【docker】私有仓库搭建


    Docker 私有仓库搭建

    在 Docker 中,当我们执行 docker pull xxx 的时候 ,它实际上是从 registry.hub.docker.com 这个地址去查找,这就是Docker公司为我们提供的公共仓库。在工作中,我们不可能把企业项目push到公有仓库进行管理。所以为了更好的管理镜像,Docker不仅提供了一个中央仓库,同时也允许我们搭建本地私有仓库。这一篇介绍registry、harbor两种私有仓库搭建。

    registry 的搭建

    Docker 官方提供了一个搭建私有仓库的镜像 registry ,只需把镜像下载下来,运行容器并暴露5000端口,就可以使用了。

    # 下载镜像
    docker pull registry:2
    # 创建并运行容器
    # 创建挂载目录
    mkdir -p /mnt/d/dockerv/registry
    docker run -d -v /mnt/d/dockerv/registry:/var/lib/registry -p 15000:5000 --name myregistry registry:2
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    Registry服务默认会将上传的镜像保存在容器的/var/lib/registry,我们将主机的/opt/registry目录挂载到该目录,即可实现将镜像保存到主机的/opt/registry目录了。

    浏览器访问http://127.0.0.1:15000/v2,出现下面情况说明registry运行正常。
    在这里插入图片描述

    验证

    推送一个镜像到服务器上

    #打包镜像
    docker tag nginx:latest 192.168.110.106:15000/nginx:latest
    docker push 192.168.110.106:15000/nginx:latest
    #结果报错了
    The push refers to repository [192.168.110.106:15000/nginx]
    Get https://192.168.110.106:15000/v2/: http: server gave HTTP response to HTTPS client
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    报错的意思是说
    因为客户端push的时候采用https协议,而registry未使用https导致的。

    解决办法

    如果你的harbor服务器是http访问,那么修改registry为http

    vim /etc/docker/daemon.json
    #修改为,增加一个key insecure-registries即可
    {
      "registry-mirrors": ["https://rjt23nxt.mirror.aliyuncs.com"],
      "log-driver":"json-file",
      "log-opts": {"max-size":"500m", "max-file":"3"},
      "insecure-registries":["192.168.110.106:15000","registry-docker.dlanqi.com"]
    }
    # 重启 docker
    systemctl daemon-reload
    systemctl restart docker
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    再次执行

    docker push 192.168.110.106:15000/nginx:latest
    The push refers to repository [192.168.110.106:15000/nginx]
    9d1af766c818: Pushed 
    d97733c0a3b6: Pushed 
    c553c6ba5f13: Pushed 
    48b4a40de359: Pushed 
    ace9ed9bcfaf: Pushed 
    764055ebc9a7: Pushed 
    latest: digest: sha256:1c70a669bbf07f9862f269162d776c35144b116938d1becb4e4676270cff8f75 size: 1570
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    成功了,查看下浏览器

    http://192.168.110.106:15000/v2/_catalog

    输出结果为

    {“repositories”:[“nginx”]}

    看到了这个仓库了

    查看镜像版本

    http://192.168.110.106:15000/v2/nginx/tags/list

    harbor 的搭建

    docker 官方提供的私有仓库 registry,用起来虽然简单 ,但在管理的功能上存在不足。 Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,harbor使用的是官方的docker registry(v2命名是distribution)服务去完成。harbor在docker distribution的基础上增加了一些安全、访问控制、管理的功能以满足企业对于镜像仓库的需求。

    下载

    地址:https://github.com/goharbor/harbor/releases 本文是有 v1.2.2

    解压下载的安装包 harbor-offline-installer-v1.2.2.tgz

  • 相关阅读:
    【Orangepi Zero2 全志H616】驱动串口通信
    腾讯云数据库公有云市场稳居TOP 2!
    不会还有人觉得会员营销很难做吧?教你几招速成!
    一个接口同时支持 form 表单、form-data、json 的优雅写法
    【java学习—十】异常(1)
    使用 Docker 自建一款怀旧游戏之 - 扫雷
    2023最新SSM计算机毕业设计选题大全(附源码+LW)之java星河书城9p6tr
    JVM垃圾回收机制
    树莓派(七)文件系统及其目录结构、虚拟文件系统
    无人机反制:车载侦测干扰一体设备技术详解
  • 原文地址:https://blog.csdn.net/timewaitfornoone/article/details/132695528