准备

  1. 基本事项
  2. Docker环境
  3. 登录授权方式
  4. 镜像存放地址
  5. HTTPS外网访问
  6. 启动Docker Registry

1. 基本事项

本篇涉及到的数据文件都放在/data目录下, 其中会有三个子目录

/data/auth/ 基本的用户名密码认证文件存放地址

/data/certs/ docker registry 镜像https访问射击到的证书与密钥的存放地址

/data/registry/ docker registry镜像的存放地址, 当push镜像到镜像服务器之后,镜像就是存放在这里

2. Docker环境

docker的安装,全称参考官网介绍: https://docs.docker.com/engine/installation/linux/docker-ce/debian/#install-docker-ce

3. Registry登录认证

Registry Server的登录认证有多种方式,这里我们使用常规情况下的一种认证,基本的用户名密码认证,这种认证方式也跟nginx的基本http认证相同, 使用一个htpasswd文件来存放认证的用户名跟密码, 这个文件的操作是通过htpasswd这个命令来添加与管理用户密码的.

如果系统中没有这个命令,可通过下面命令安装

apt-get install apache2-utils

通过htpasswd命令生成用户管理文件并添加一个用户

htpasswd -cBb auth/htpasswd <username> <password>

往现有的文件里面添加一个用户

htpasswd -Bb auth/htpasswd <username> <password>

4. 镜像存放地址

通常正式环境我们的镜像会存储在外部,而不是在docker container里面, 所以我们需要在外部准备一个目录,在启动registry镜像的时候,通过-v 参数映射到container内部, 此教程里面的目录是/data/registry/

5. HTTPS外网访问

外网访问必须要用https, 主要是涉及到证书的问题, 通常我们可以使用自签名证书,

我们分docker register server端跟 docker pull 客户端两部分来讲

server端不涉及根证书添加到信任区域问题,

client端要访问自签名证书的服务器,必须添加根证书到client的信任区

BUT: 当docker register server需要pull/push镜像的时候,就需要把根证书添加到信任区, 这里有个原则,就是哪里需要pull/push镜像,那台机器就需要添加根证书

添加自签名根证书到linux信任区(Debian, 适用于Ubuntu)

这个步骤只需要用到docker pull的机器上做, docker registry server非必须

证书存放区域: /usr/share/ca-certificates/

Copy证书到证书存放地址:

wget http://agilelabs.net/certifications/publicauthorities/agilelabs_root_ca.pem/ –O /usr/share/ca-certificates/agilelabs_root_ca.crt

重新加载新添加的跟证书:

dpkg-reconfigure ca-certificates

选择YES=>通过”空格”键选择刚添加的根证书=> Tab到底部的OK=>回车选择

添加新的根证书之后需要重启Docker,让 Docker能识别新的证书

service docker restart

6. 启动Docker Registry

mkdir -p /data/registry \

mkdir -p /data/auth \

mkdir -p /data/certs

docker run -d \

--restart=always \

--name registry \

-v /data/registry:/var/lib/registry \

-v /data/auth:/auth \

-e "REGISTRY_AUTH=htpasswd" \

-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \

-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \

-v /data/certs:/certs \

-e REGISTRY_HTTP_ADDR=0.0.0.0:443 \

-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/registry.niusys.com.crt \

-e REGISTRY_HTTP_TLS_KEY=/certs/niusys.key \

-p 443:443 \

registry:2

以上算是对这段时间研究Docker以来,搭建Registry的总结。

自签名证书的部分可以通过 http://agilelabs.net 非常方便的生成与下载.

无论是密钥还是证书都可以通过右键复制链接, 在Linux里面通过 wget http://agilelabs.net/下载地址 –O 要保存的文件名

比如下载根证书并存储到/usr/share/ca-certificates目录下的agilelabs_root_ca.crt文件: wget http://agilelabs.net/certifications/publicauthorities/agilelabs_root_ca.pem/ –O /usr/share/ca-certificates/agilelabs_root_ca.crt

Docker Register安装与基本认证的更多相关文章

  1. Docker Register部署与基本认证

    准备 基本事项 Docker环境 登录授权方式 镜像存放地址 HTTPS外网访问 启动Docker Registry 1. 基本事项 本篇涉及到的数据文件都放在/data目录下, 其中会有三个子目录 ...

  2. docker的安装和基础使用

    Docker EE/Docker CE简介与版本规划 版本区别 Docker EE Docker EE由公司支持,可在经过认证的操作系统和云提供商中使用,并可运行来自Docker Store的.经过认 ...

  3. docker+redis安装与配置,主从+哨兵模式

    docker+redis安装与配置 docker安装redis并且使用redis挂载的配置启动 1.拉取镜像 docker pull redis:3.2 2.准备准备挂载的目录和配置文件 首先在/do ...

  4. Docker开启远程连接,本地IDEA使用docker插件连接(不认证的版本和认证的版本都有)

    前言 在学校学习的时候,要部署一个Java程序,一般是打成war包,放到服务器上的tomcat的webapp里面去: 后来SpringBoot出现内置了tomcat,就直接打成jar包,丢到服务器任何 ...

  5. Docker上安装Redis

    Docker可以很方便的进行服务部署和管理,下面我们通过docker来搭建Redis的单机模式.Redis主从复制.Redis哨兵模式.Redis-Cluster模式 一.在Docker上安装单机版R ...

  6. Docker开启TLS和CA认证

    前言:Docker直接开启2375端口是不安全的,别人只要连上之后就可以任意操作,下面是开启Docker的TLS和CA认证方法,并使用Jenkins和Portainer连接. 一.生成证书 查看服务器 ...

  7. docker——容器安装tomcat

    写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...

  8. docker 启动安装等命令

    确认是否安装url whereis curl 启动docker服务: sudo service docker start sudo service docker stop 安装curl sudo ap ...

  9. DOCKER windows安装

    DOCKER windows安装 1.下载程序包 2. 设置环境变量 3. 启动DOCKERT 4. 分析start.sh 5. 利用SSH工具管理 6. 下载镜像 6.1 下载地址 6.2 用FTP ...

随机推荐

  1. Linux上mysql的安装与配置

    前言 在我们使用Linux的过程中,可能会使用到数据库.那么,数据库的安装与配置就是我们需要掌握的了~所以呢,这篇博客小编就来给大家唠唠数据库的安装与配置. 说到编译安装,小编脑海里浮现的第一个方法就 ...

  2. 使用Entify Framework 6.x的事务操作

    public void TransactionsTest() { using (var context = new testContext()) { //使用EF事务 在vs2013中先升级Entit ...

  3. 记录一次因为硬盘写满造成的redis无法连接

    缘起: 今天早晨收到报警,服务不干活了,赶紧起来看问题... 为了尽快让服务可用,尝试重启服务,发现服务起不来,报错 redis connection failed! 看起来是redis挂了,但是发现 ...

  4. 高效实用的.NET开源项目

    似乎...很久很久没有写博客了,一直都想写两篇,但是却没有时间写.感觉最近有很多事情需要处理,一直都是疲于奔命,一直到最近才变得有些时间学习和充电.最近没有事情都会看一些博客和开源项目,发现介绍开源项 ...

  5. 读Zepto源码之Stack模块

    Stack 模块为 Zepto 添加了 addSelf 和 end 方法. 读 Zepto 源码系列文章已经放到了github上,欢迎star: reading-zepto 源码版本 本文阅读的源码为 ...

  6. 为什么阿里的程序员那么帅?---原来他们都有"编码规约扫描"神器在手

    为了迎接十九大的到来,帝都城这几天也是满城风雨,听说早高峰期地铁站的人都排到天桥上了,哎,这就是该死的北漂生活.但是无论怎样,我依然在北京向各位问好! 之前总结过俩篇关于阿里Java开发手册的编程规约 ...

  7. win10 UWP 发邮件

    UWP 下如何发邮件?可以使用mailto:xx?subject=*方式发送? 本文:如何在 UWP 使用默认邮件发邮件. 打开设置,应用,默认应用,选择应用 OutLook.这样就和我的一样,如果出 ...

  8. win10 uwp 从StorageFile获取文件大小

    本文主要:获取文件大小 private async Task<ulong> FileSize(Windows.Storage.StorageFile file) { var size = ...

  9. Android 6.0 双向通话自动录音

    package com.example.hgx.phoneinfo60.Recording; import android.content.BroadcastReceiver; import andr ...

  10. 【转】RAM 大全-DRAM, SRAM, SDRAM的关系与区别

    http://blog.csdn.net/huleide/article/details/5506698 ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是R ...