docker 私有化仓库以及可视化工具部署之二三事

        小弟在搭建docker 私有化仓库以及可视化工具中遇到不少问题,网上的解决方案也试过很多种,包括各种写错的,还有搞噱头的,很是让人费劲,经过不懈的努力,终于搭建成功了,再次分享下。

本文中使用的registry以及docker-registry-ui均为latest

一、在/etc/docker/daemon.json,配置daemon.json。(如果这个文件不存在就自己创建)

{
        #镜像源管理,我增加了腾讯镜像源,可以提速
        "registry-mirrors": [   "https://mirror.ccs.tencentyun.com" ],
        #docker私服配置,因为不是https链接,所以在此配置
        "insecure-registries":["192.168.2.100:5000"] 
}

配置完成需要去重载配置和重启docker服务

sudo systemctl daemon-reload
sudo systemctl restart docker

注意:此文件配置中insecure-registries是需要在push本地镜像到私有仓库或者pull私有仓库镜像到本地的主机上配置。

 

二、新建registry配置文件config.yml

version: 0.1
log:
  accesslog:
    disabled: true
  level: debug
  formatter: text
  fields:
    service: registry  #registry服务名称
    environment: staging
storage:
  delete:
    enabled: true
  cache:
    blobdescriptor: inmemory
  filesystem:
    rootdirectory: /var/lib/registry
http:
  addr: :5000
  headers:
    X-Content-Type-Options: [nosniff]
    Access-Control-Allow-Origin: ['http://192.168.2.100:8022']
    Access-Control-Allow-Methods: ['HEAD', 'GET', 'OPTIONS', 'DELETE']
    Access-Control-Allow-Headers: ['Authorization', 'Accept']
    Access-Control-Max-Age: [1728000]
    Access-Control-Allow-Credentials: [true]
    Access-Control-Expose-Headers: ['Docker-Content-Digest']
  http2:
    disabled: false
health:
  storagedriver:
    enabled: true
    interval: 10s
    threshold: 3

注意:

Access-Control-Allow-Origin: ['http://192.168.2.100:8022'],这块填写的docker-registry-ui服务的端口以及宿主机的ip

此文件是为了解决docker-registry-ui因为跨域产生的问题,后面会详细介绍

三、新建docker-compose.yml文件,通过docker-compose同时启动registry和docker-registry-ui两个容器

version: '2.0'
services:
  registry:
    image: registry
    ports:
      - 5000:5000
    volumes:
      - /var/lib/docker/volumes/registry:/var/lib/registry
      - /opt/docker/docker-config/ui/config.yml:/etc/docker/registry/config.yml
  ui:
    image: joxit/docker-registry-ui
    ports:
      - 8022:80
    environment:
      - REGISTRY_TITLE=Popper Docker Registry
      - REGISTRY_URL=http://192.168.2.100:5000
      - SINGLE_REGISTRY=true
    depends_on:
      - registry

通过此命令启动该文件:

docker-compose up -d

此文件是是通过docker-compose来启动两个容器。

其中需要将第二步中的config跨域配置挂载在registry容器中

三、访问ui地址

访问:http://192.168.2.100:8022,即可访问ui地址

问题点:

1、第一步中,insecure-registries配置必须要有,因为docker 默认不允许http方式推送镜像(默认为https) ,但我们可以通过 docker 的配置选项来取消这个限制,也即第一步中centos7 的docker配置文件 /etc/docker/daemon.json 

2、第二步中,如果通过命令分别去启动registry和ui两个容器,访问ui页面下方会出现错误跨域报错,也不会在页面上看到仓库的镜像文件:

An error occured: Check your connection and your registry must have Access-Control-Allow-Origin header set to http://xxx

         所以必须要启动跨域后,私有仓库的ui框架才能顺利通过registry提供的接口拿到数据,不然会报跨域的错误。 当然也可以启动registry容器后,在进入容器里边进行跨域设置,不过相对来说比较麻烦。

希望自己遇到的诸多困难,能带给各位一点点小小的帮助,感谢。

  • 12
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker中,可以通过使用Portus来实现docker私有仓库Registry的可视化。Portus是一个带有UI管理功能的仓库管理软件,它可以与Registry一起使用,提供更方便的图形化用户界面来浏览、检索和管理Docker镜像仓库。通过Portus,用户可以通过浏览器来管理项目和命名空间,进行权限管理,进行镜像的复制和同步,以及记录和追踪所有对镜像仓库的操作,用于审计管理。同时,Portus还支持与企业现有的AD/LDAP进行集成,方便进行鉴权认证管理。总之,使用Portus可以使docker私有仓库Registry的管理更加简单和直观。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Docker仓库之企业级可视化私有仓库Harbor(安装、快速、入门)](https://blog.csdn.net/qq_41417660/article/details/106809535)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [docker 下私有镜像仓库registry及其可视化系统Portus的搭建【转】](https://blog.csdn.net/weixin_33898876/article/details/85966303)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值