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、创建配置文件(注意配置文件格式有点类似python,靠缩进识别配置项,一定要保持缩进一致) 
    ###创建仓库的配置文件 
    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用户分配一下权限。

  • 相关阅读:
    Linux编程 22 shell编程(输出和输入重定向,管道,数学运算命令,退出脚本状态码)
    mysql 开发进阶篇系列 46 物理备份与恢复( xtrabackup的 选项说明,增加备份用户,完全备份案例)
    mysql 开发进阶篇系列 45 物理备份与恢复(xtrabackup 安装,用户权限,配置)
    mysql 开发进阶篇系列 44 物理备份与恢复( 热备份xtrabackup 工具介绍)
    Linux编程 21 shell编程(环境变量,用户变量,命令替换)
    Linux编程 20 shell编程(shell脚本创建,echo显示信息)
    mysql 开发进阶篇系列 43 逻辑备份与恢复(mysqldump 的基于时间和位置的不完全恢复)
    Linux编程 19 编辑器(vim 用法)
    (网页)angularjs中的interval定时执行功能(转)
    (网页)在SQL Server中为什么不建议使用Not In子查询(转)
  • 原文地址:https://www.cnblogs.com/kuku0223/p/7645752.html
Copyright © 2011-2022 走看看