zoukankan      html  css  js  c++  java
  • Docker搭建带有访问认证的私有仓库

    以下步骤均为本人亲自踩坑,历经数次失败,最终搭建成功 
    一、环境信息: 
    操作系统:CentOS 7 
    Docker版本:1.12.5 (更高版本应该类似) 
    registry:2.4.1 
    registry-web: hyper/docker-registry-web:latest 
    二、搭建步骤: 
    1、拉取镜像registry(仓库)和registry-web(用于访问仓库的UI界面):

    docker pull hyper/docker-registry-web
    docker pull registry:2.4.1
    
    • 1
    • 2
    • 3

    2、下载docker-compose(一种简化复杂容器应用的利器,具体使用可参见官网) 
    官网下载链接:https://docs.docker.com/compose/install/ 
    懒人可以直接使用下面的命令即可下载

    curl -L https://github.com/docker/compose/releases/download/1.13.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
    
    • 1
    • 2

    下载完成后更改docker-compose的权限:

    chmod 755 /usr/local/bin/docker-compose
    
    • 1
    • 2

    3、创建几个目录,用于存放配置文件和作为私有仓库的镜像存储目录

    mkdir -p /data/registry_dir/conf/registry   #存放仓库的配置信息
    mkdir -p /data/registry_dir/conf/registry-web #存放仓库UI界面的配置信息
    mkdir -p /data/registry_dir/registry  #存放仓库的镜像
    mkdir -p /data/registry_dir/db  #仓库的访问信息
    
    • 1
    • 2
    • 3
    • 4
    • 5

    4、生成证书

    openssl req -new -newkey rsa:4096 -days 365 
                    -subj "/CN=localhost" 
                    -nodes -x509  
                    -keyout /data/registry_dir/conf/registry-web/auth.key 
                    -out /data/registry_dir/conf/registry/auth.cert
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    5、创建yml配置文件 
    ###创建仓库的配置文件 
    vim /data/registry_dir/conf/registry/config.yml

    version: 0.1
    
    storage:
      filesystem:
        rootdirectory: /var/lib/registry
    
    http:
      addr: 0.0.0.0:5000
    
    auth:
      token:
        realm: http://localhost:8080/api/auth
        service: localhost:5000
        issuer: 'admin'
        rootcertbundle: /etc/docker/registry/auth.cert
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    ###创建仓库UI的配置文件 
    vim /data/registry_dir/conf/registry-web/config.yml

    registry:
        url: http://registry-srv:5000/v2
        name: localhost:5000
        readonly: false
        auth:
            enabled: true
            issuer: 'admin'
            key: /conf/auth.key
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    ###创建docker-compose启动配置文件 
    vim /data/registry_dir/docker-compose.yml

    version: '2'
    services:
      registry-web:
        image: hyper/docker-registry-web:latest
          ports:
            - 8080:8080
          volumes:
             - /data/registry_dir/conf/registry-web:/conf:ro
             - /data/registry_dir/db:/data
         networks:
           - registry-net
         depends_on:
            - registry
         restart: always
    registry:
      image: registry:2.4.1
      ports:
        - 5000:5000
      volumes:
        - /data/registry_dir/conf/registry:/etc/docker/registry:ro
        - /data/registry_dir/registry:/var/lib/registry
      environment:
        - REGISTRY_STORAGE_DELETE_ENABLED=true
      networks:
        - registry-net
      restart: always
    networks:
      registry-net:
      #driver: default
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    6、启动容器

    docker-compose up -d
    
    • 1
    • 2

    搭建完成,查看镜像运行情况:docker ps | grep registry 
    正常运行的话,接下来就可以愉快的访问你的镜像仓库了,打开浏览器,输入localhost:8080(从其他机器访问该仓库的话,输入ip:port的方式就可以)默认用户名密码是admin/admin 
    这里写图片描述

    也可以从后台验证配置是否准确:

    docker login localhost:5000
    
    • 1
    • 2

    输入正确的用户密码会提示: 
    这里写图片描述

    如果密码错,则会提示: 
    这里写图片描述

    至此,带有访问认证的docker私有仓库搭建完毕,也可参考官网通过docker run的方式, 
    链接:https://hub.docker.com/r/hyper/docker-registry-web/

    另外需注意,首次向仓库push镜像时会提示权限问题,需要登录web给admin用户分配一下权限。

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yuhaitao8922/article/details/72996993
  • 相关阅读:
    驼峰命名法
    Java中有关Null的9件事
    java开发中JDBC连接数据库代码和步骤
    TestNG 与 Junit的比较
    洛谷 P1880 [NOI1995]石子合并(区间dp,断环为链)
    洛谷 P1901 发射站(单调栈)
    洛谷 P2947 [USACO09MAR]向右看齐Look Up(单调栈)
    洛谷 P2629 好消息,坏消息(前缀和,单调队列,断环为链)
    洛谷 P3810 【模板】三维偏序(陌上花开)(CDQ分治)
    洛谷 CF429D Tricky Function(平面最近点对,分治)
  • 原文地址:https://www.cnblogs.com/adolfmc/p/9195576.html
Copyright © 2011-2022 走看看