2017年06月10日 17:30:26

阅读数:2581

以下步骤均为本人亲自踩坑,历经数次失败,最终搭建成功 
一、环境信息: 
操作系统: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

Docker搭建带有访问认证的私有仓库的更多相关文章

  1. [python](Docker SDK)上传镜像到私有仓库(tls、身份认证)

    (Docker SDK)上传镜像到私有仓库(tls.身份认证) API:https://docker-py.readthedocs.io/en/stable/ 环境:python:3.7.3 配置参数 ...

  2. Docker容器管理平台Humpback进阶-私有仓库

    Docker私有仓库 在 Docker 中,当我们执行 docker pull xxx 的时候,可能会比较好奇,docker 会去哪儿查找并下载镜像呢? 它实际上是从 registry.hub.doc ...

  3. Docker | 第六章:构建私有仓库

    前言 上一章节,讲解了利用Dockerfile和commit进行自定义镜像的构建.大部分时候,公司运维或者实施部门在构建了符合公司业务的镜像环境后,一般上不会上传到公共资源库的.这就需要自己搭建一个私 ...

  4. docker基础——自定义镜像、创建私有仓库、查看 docker 运行状态

    一.自定义镜像 1,案例1 要求:请自定义一个 docker 镜像,基于 hub.c.163.com/library/centos,要求创建出来的镜像在生成容器的时候,可以直接使用 ifconfig ...

  5. 在jenkins中使用shell命令推送当前主机上的docker镜像到远程的Harbor私有仓库

    1.jenkins主机上的docker配置 先在Jenkins主机的docke上配置上Harbor私有仓库地址 cat /etc/docker/daemon.json { "insecure ...

  6. 记录 Docker 的学习过程 (自建私有仓库)

    私有仓库的创建 node1#wget http://harbor.orientsoft.cn/harbor-v1.4.0/harbor-offline-installer-v1.4.0.tgz nod ...

  7. docker 创建新的镜像到私有仓库

    docker:/data# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES bd6db4127a9e centos &q ...

  8. 用docker搭建ss访问火星

    最近弄了个vultr的VPS,便想用它搭个梯子访问火星.由于vultr是支持docker的,便找了个ss的docker镜像: https://hub.docker.com/r/mritd/shadow ...

  9. 03搭建docker私有仓库

    搭建docker私仓,可以使用docker官方提供的registry镜像.该镜像目前有2.0,2.3和2.3.1版本.它只与1.6.0以上版本的docker兼容.搭建私仓的步骤如下: 一:无代理.无认 ...

随机推荐

  1. Linux安装Tomcat-Nginx-FastDFS-Redis-Solr-集群——【第十集之Nginx反向代理原理】(有参考其他文章)

    1,正向代理(代理客户机) 2,反向代理(代理服务器,所以叫反向代理) 3,集群+负载均衡 集群指的是将几台服务器集中在一起,实现同一业务. 负载均衡是由多台服务器以对称的方式组成一个服务器集合,每台 ...

  2. 060 SparkStream 的wordcount示例

    1.SparkStream 入口:StreamingContext 抽象:DStream 2.SparkStreaming内部原理 当一个批次到达的时候,会产生一个rdd,这个rdd的数据就是这个批次 ...

  3. day11 装饰器---函数的使用方法

    这个是一个难点,以后面试会经常出现的,要搞懂! 装饰器升级版,进阶内容1: def outer(flag): def wrapper(func): def inner(*args,**kwargs): ...

  4. Redis闪退解决办法

    复杂办法! cmd 进入命令,cd进入redis文件 输入:redis-server.exe redis.windows.conf,手动开启! 简单办法,删除重新下载! 不确定办法如下 1.在解压的r ...

  5. Java集合—Set集和Map集

    一.Set集合 1.概述 Set集合无序的.不可重复的元素(无序是指索引) Set集合不按照特定的方法进行排序,只是将元素放在集合中. 下面介绍一下Set集合的HashSet和TreeSet两个实现类 ...

  6. TF:TF之Tensorboard实践:将神经网络Tensorboard形式得到events.out.tfevents文件+dos内运行该文件本地服务器输出到网页可视化—Jason niu

    import tensorflow as tf import numpy as np def add_layer(inputs, in_size, out_size, n_layer, activat ...

  7. Snowflake Snow Snowflakes POJ - 3349(hash)

    You may have heard that no two snowflakes are alike. Your task is to write a program to determine wh ...

  8. Ajax技术使用(一)

    Ajax技术使用 目录 AJAX介绍 XMLHttpRequest 请求和响应 onreadystatechange 事件 AJAX介绍 什么是 AJAX AJAX = 异步 JavaScript 和 ...

  9. Is there a TRY CATCH command in Bash

    Is there a TRY CATCH command in Bash? No. Bash doesn't have as many luxuries as one can find in many ...

  10. SpringBoot文件上传下载

    项目中经常会有上传和下载的需求,这篇文章简述一下springboot项目中实现简单的上传和下载. 新建springboot项目,前台页面使用的thymeleaf模板,其余的没有特别的配置,pom代码如 ...