• 【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

  • 相关阅读:
    【分享】golang windows 运行报错 undefined: syscall.SIGUSR1
    管理信息系统总复习、第一章(信息系统的概述)
    排序算法--选择排序
    从小白到架构师(2): 走向微服务
    Python语言学习:Python语言学习之网络爬虫/反爬虫技术相关的简介、案例应用之详细攻略
    磁盘的工作方式
    【STM32】STM32学习笔记-WDG看门狗(46)
    虚拟化设备-Virtio介绍
    基于SSM的论文投稿系统
    在2024年WWDC大会上,苹果宣布了其全新的“Apple Intelligence”AI功能以及ISO18功能
  • 原文地址:https://blog.csdn.net/timewaitfornoone/article/details/132695528