Loading

7-Docker私有仓库

1、Docker Registry分类

  • Registry用于保存docker镜像,包括镜像的层次结构和元数据
  • 分类
    • Sponsor Registry:第三方red=gistry,供客户和Docker社区使用

    • Mirror Registry:第三方,只供客户使用

    • Vendor Registry:由发布Docker镜像的供应商提供的

    • Private Registry:通过设有防火墙和额外的安全层的私有实体提供的registry

2、创建Docker 私有仓库

  • docker官方提供了一个私有仓库的镜像registry。

  • 主机安装

    • 安装部署
    # yum -y install docker-registry
    # vim /etc/docker-distribution/registry/config.yml
    version: 0.1
    log:
      fields:
        service: registry
    storage:
        cache:
            layerinfo: inmemory
        filesystem:
            rootdirectory: /var/lib/registry
    http:
        addr: :5000
    # systemctl start docker-distribution  # 启动服务
    
    • 验证推送
    # 查看本地镜像
    # docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    nginx               latest              540a289bab6c        2 weeks ago         126MB
    redis               latest              de25a81a5a0b        3 weeks ago         98.2MB
    # 通过docker tag将该镜像标志为要推送到私有仓库:
    # docker tag nginx:latest localhost:5000/nginx:latest
    
    # 推送镜像到私有仓库
    # docker push localhost:5000/nginx
    The push refers to repository [localhost:5000/nginx]
    a89b8f05da3a: Pushed
    6eaad811af02: Pushed
    b67d19e65ef6: Pushed
    latest: digest: sha256:f56b43e9913cef097f246d65119df4eda1d61670f7f2ab720831a01f66f6ff9c size: 948
    
    • 默认私有registry启动为http协议,提交时可能会报错,可设置为https或者设置为忽略https
# vim /etc/docker/daemon.json
{
   "registry-mirrors": ["http://hub-mirror.c.163.com"]
   "insecure-registries": ["localhost:5000"]  # 增加
}

3、容器安装

  • docker pull
# docker pull registry:2
# docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --name myregistry registry:2

4、Harbor

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

  • Harbor的部署一般分为两种离线和在线

    • Online installer: The online installer downloads the Harbor images from Docker hub. For this reason, the installer is very small in size.
    • Offline installer: Use the offline installer if the host to which are are deploying Harbor does not have a connection to the Internet. The offline installer contains pre-built images so it is larger than the online installer.
  • Harbor官方github地址:https://github.com/goharbor/harbor/

  • 特点

    • 支持基于用户的访问控制
    • 支持镜像复制高可用
    • 支持图形化用户界面
    • 支持用户认证管理
    • 有丰富的Restful API
  • Harbor安装

    • Harbor安装运行需要借助docker compose单机编排工具

      • docker compose 可以轻松、高效的管理容器,它是一个用于定义和运行多容器 Docker 的应用程序工具
      # yum -y install epel-release
      # yum -y install docker-compose
      
      • 安装Harbor
    # tar -zxf harbor.v1.9.2.tar.gz
    # vim harbor.cfg
    hostname = 192.168.10.11
    ui_url_protocol = https
    db_password = root123
    max_job_workers = 3 
    customize_crt = on
    ssl_cert = /data/db/cert/www.biglittleant.cn.crt 
    ssl_cert_key = /data/db/cert/www.biglittleant.cn.key
    secretkey_path = /data/db
    # sh ./install.sh 
    

    ​ 配置文件解释:

    • hostname:配置主机名称,不可以设置127.0.0.1,localhost这样的主机名,
    • ui_url_protocol:指定使用HTTP协议还是HTTPS协议。
    • Email settings:设置harbor的邮箱。
    • harbor_admin_password:设置管理员的初始密码
    • auth_mode:用户认证模式,默认是db_auth,也可以使用ldap验证。
    • db_password:使用db需要指定连接数据库的密码
    • self_registration:是否允许自行注册用户,默认是on,新版本可以在图形界面中修改。
    • max_job_workers:最大工作数,默认是三个

    重启Harbor

    # docker-compose stop
    # docker-compose  up -d 
    
posted @ 2021-07-13 17:49  勤俭持家亮公子  阅读(89)  评论(0)    收藏  举报