在CentOS6.7下安装私有Docker Registry

本文介绍了如何在CentOS6.7系统中搭建私有的Docker Registry,包括配置SSL、使用Nginx作为反向代理,以及客户端的SSL配置、镜像上传和下载。主要步骤涉及生成SSL证书、安装Nginx、配置Docker Registry服务等。
摘要由CSDN通过智能技术生成
前言

由于目前大多数的镜像下载网站都是在国外站点,国内用户在下镜像的时候就时常遇到下载速度超慢的情况;而且在将Docker应用到生产环境的过程中,还会面临下载过来的Docker镜像是否安全的问题。因些在生产环境下搭建私有的Docker Registry,就是一个一举二得的方案了。

但目前国内的大多数企业使用的发行版,为Redhat体系,其中又以Centos环境居多。而网上的资料和出版的书籍在介绍Docker的时候都是以ubuntu为基础进行讲解和配置,而CentOS6.x以上版本访问私有的 Docker
Registry 都需要SSL的支持。因此使用CentOS来搭建此服务最大的难点是配置和使用SSL,并让做为反向代理的nginx支持SSL传输和认证。

约定
  • 服务器IP:172.20.31.201
  • 服务器域名:registry.cmzsteven.com
    #https的SSL证书生成时不能用IP地址因此这里随意设置一个域名即可,不一定为真实域名。
  • 客户端IP:172.20.31.200
  • 代理服务器:nignx (反向代理)
一、配置流程

为方便大家从总体上掌握服务搭建,在这里简单叙述一下配置流程:

  1. 在配置端配置SSL:生成密钥、根证书,为nginx服务生成SSL密钥,最后私有CA根据请求完成对nginx证书的签发;
  2. 编译、安装nginx,并配置为反向代理。监听https的433,对客户端发出的针对433端口的请求转发到registry服务的5000端口;
  3. 安装Docker的registry镜像并运行容器,监听来自nginx转发过来的请求;
  4. 在客户端完成SSL证书的添加,并完成上传及下载镜像的操作,完成测试。
二、在Registry服务器上配置SSL

1、安装相关依赖包

yum install -y gcc pcre-devel pcre-static openssl openssl-devel httpd-tools

注:

  • gcc 是编译器;
  • pcre-devel pcre-static 是编译nginx时需要的依赖包;
  • openssl openssl-devel 用于生成SSL根证书及密钥并进行nignx证书的签发;
  • httpd-tools 用来生成登录https服务的帐号及密码。

2、添加域名到本地/etc/hosts

echo "172.20.31.201 registry.cmzsteven.com" >> /etc/hosts

3、生成根密钥

cd /etc/pki/CA
rm -rf cacert.pem index.txt index.txt.attr index.txt.old serial serial.old
openssl genrsa -out private/cakey.pem 2048

运行结果:

Generating RSA private key, 2048 bit long modulus
...................................................+++
....................................................................................+++
e is 65537 (0x10001)

4、生成根证书

cd /etc/pki/CA
openssl req -new -x509 -key private/cakey.pem -out cacert.pem

运行结果:

You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:liaoning
Locality Name (eg, city) [Default City]:shenyang
Organization Name (eg, company) [Default Company Ltd]:cmzstevenstudio
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:registry.cmzsteven.com
Email Address []:

在运行过程中会提示一些信息用于生成私有的CA根证书。需要特别注意的是倒数第二行“Common Name”,这里需要输入的是事先准备好的服务器域名
生成的证书存放的位置:/etc/pki/CA/cacert.pem

5、为Nginx生成SSL密钥

mkdir -p /etc/nginx/ssl
cd /etc/nginx/ssl
openssl genrsa -out nginx.key 2048

运行结果:

Generating RSA private key, 2048 bit long modulus
...............................................................+++
......................................+++
e is 65537 (0x10001)

*CA中心服务与要申请证书的Nginx服务应该运行在同一台服务器上,否则应该是在需要运行Nginx服务的服务器上生成证书。

6、为Nginx生成证书签署请求

openssl req -new -key nginx.key -out nginx.csr

运行结果:

Generating RSA private key, 2048 bit long modulus
...............
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值