dockerfile,registry,使用nginx反向代理搭建私有仓库

防伪码:你好阳光

一、实验拓扑:

centos7+docker综合实验

二、实验要求:

实验机器(两台centos7.2)

centos7+docker综合实验

centos7+docker综合实验

1、registry_server和docker宿主机均需安装docker软件包并启动docker服务。

2、搭建私有仓库服务器,为docker主机提供镜像仓库,实现镜像下载与上传功能

3、在docker宿主机上将下载下来的基础镜像生成提供http和ssh服务的新镜像,可以使用docker commit或docker build命令生成新镜像

4、将docker宿主机生成的镜像上传到registry_server。

5、在docker宿主机所有镜像删除,从registry_server服务器下载镜像

6、使用下载的镜像运行一个容器运行在后台,并能访问容器所提供的http和ssh服务。

说明:

docker.hexiaoshuai.com 这是dockerregistry服务器的主机名称,ip是192.168.132.6;因为https的SSL证书要用到主机名,所以要设置主机名。

docker registry 服务器作为处理docker镜像的最终上传和下载,用的是官方的镜像registry。

nginx 1.6.x 是一个用nginx作为反向代理服务器

注:关闭selinux

三、实验步骤:

(1)使用nginx反向代理搭建docker私有仓库

  1. registryserver 和docker host 安装docker并启动服务

centos7+docker综合实验

centos7+docker综合实验

2.私有仓库https支持:

A)安装依赖软件包:

centos7+docker综合实验

在Nginx编译需要PCRE,因为Nginx的Rewrite模块和HTTP核心模块会使用到PCRE正则表达式。需要安装pcre和pcre-devel用yum就能安装。

Zlib库提供了开发人员的压缩算法,在nginx的模块中需要使用gzip压缩。

需要安装zlib和zlib-devel用yum就可以安装

在Nginx中如果需要为服务器提供安全则需要用到OpenSSL库。

需要安装的是openssl和openssl-devel。用yum就可以安装。

B)配置SSL

(1) 编辑/etc/hosts,把docker.hexiaoshuai.com的ip地址添加进来,例如:

ip地址、/etc/hosts、主机名:

centos7+docker综合实验

(2) 生成根密钥

先把

/etc/pki/CA/cacert.pem
/etc/pki/CA/index.txt
/etc/pki/CA/index.txt.attr
/etc/pki/CA/index.txt.old
/etc/pki/CA/serial
/etc/pki/CA/serial.old

删除掉!

centos7+docker综合实验

(3) 生成根证书

centos7+docker综合实验

会提示输入一些内容,因为是私有的,所以可以随便输入,最好记住能与后面保持一致,特别是"Common Name”。必须要和hostname显示的一致。

上面的自签证书cacert.pem应该生成在/etc/pki/CA下

centos7+docker综合实验

(4) 为nginx web服务器生成ssl密钥

centos7+docker综合实验

注:因为CA中心与要申请证书的nginx服务器是同一个所以就在本机上执行为nginx服务器生成ssl密钥了,否则应该是在另一台需要用到证书的服务器上生成。

查看nginx服务器的密钥

centos7+docker综合实验

(5) 为nginx生成证书签署请求

输出如下信息

centos7+docker综合实验

同样会提示输入一些内容,CommoneName一定要是你要授予证书的服务器域名或主机名,challenge password不填

(6) 私有CA根据请求来签发证书

centos7+docker综合实验

同样会提示输入一些内容,选择y就可以了!

查看nginx的证书

C)安装,配置,运行nginx

(1) 添加组和用户

centos7+docker综合实验

(2) 编译,安装nginx:

centos7+docker综合实验

上述选项的解释:

--user=USER 设定程序运行的用户环境(www)
--group=GROUP 设定程序运行的组环境(www)

--prefix=PATH 设定安装目录

--with-pcre启用pcre库,Nginx的Rewrite模块和HTTP核心模块会使用到PCRE正则表达式

--with-http_stub_status_module是为了启用nginx的NginxStatus功能,用来监控Nginx的当前状态

--with-http_ssl_module开启SSL模块,支持使用HTTPS协议的网页

--with-http_realip_module开启Real IP的支持,该模块用于从客户请求的头数据中读取Real Ip地址

--with-http_addition_module开启Addtion模块,该模块允许你追加或前置数据到相应的主体部分

--with-http_flv_module模块ngx_http_flv_module为FlashVideo(FLV)文件提供服务端伪流媒体支持

(3) 编辑/opt/nginx/conf/nginx.conf文件

centos7+docker综合实验

相关选项含义:

ssl_session_cache会话缓存用于保存SSL会话,这些缓存在工作进程间共享,可以使用ssl_session_cache指令进行配置。1M缓存可以存放大约4000个会话。

ssl_session_timeout缓存超时,默认的缓存超时是5分钟。

ssl_ciphers HIGH:!aNULL:!MD5使用高强度的加密算法

dawei

【声明】:淮南站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。