docker 私有仓库搭建及测试

1.Docker仓库

docker仓库实际上是一个docker容器,从网上下载registry.tar导入镜像,利用该镜像即可以生成docker仓库。

为了安全,这里利用了nginx作为反向代理服务器,启用了ssl方式的加密传输,客户端可以通过访问nginx服务器来下载镜像。

注意:在本案例中,docker仓库和nginx服务器处于同一主机中。

1)安装前准备

固定主机名

固定IP地址

hosts文件中添加本机的解析条目(没有DNS的情况下)

安装http支持包,其中pcre-devel支持正则表达式,zlib-devel支持压缩算法

2)搭建CA,实现加密传输。

检查该目录,确定该目录下没有以下文件:

cacert.pem  index.txt  index.txt.attr  index.txt.old  serial  serial.old

生成根密钥

“genrsa”为算法,“private/cakey.pem”为密钥的生成的位置,这里使用的是相对路径

“2048”为密钥长度。

生成根证书,执行命令后依次要输入:国家代码(两个英文字母)、省份、城市、组织、单位、邮箱。

nginx生成密钥(在nginx服务器)

nginx生成证书签署请求(在nginx服务器)

私有CA根据请求来签发证书(在CA服务器即docker仓库服务器,需要将请求发送给CA

出现提示时,输入两次y

证书生成

3)安装、配置、运行nginx

创建运行账户和组

编译安装nginx

优化nginx启动执行路径

修改nginx.conf

 

检测nginx主配置文件,并且启动nginx程序。

添加防火墙例外

4)配置运行docker

需要先关闭docker服务

编辑docker配置文件,添加这行内容,目的是实现安全的传输。

启动docker服务

5)运行私有仓库容器

导入registry.tar

运行容器,容器通过的端口为5000,这里使用了数据卷挂载到了容器中。

测试仓库是否可用,浏览器访问“https://docker.benet.com”或者执行以上命令显示代码为200,说明仓库可用。

2.配置客户机

1)配置前准备

同样,在hosts中添加解析记录,这里写的是docker 仓库的主机名和IP地址。(当nginx服务器和docker仓库不在同一台主机时,填写的便是nginx服务器的)

 

拷贝证书,并且重命名。

测试仓库是否可用

注册账户

2)上传下载镜像

客户端已存在的镜像

上传:

更换tag标签后上传到docker仓库

在仓库中查看客户端上传的镜像,需要先安装tree工具。

下载:

在客户端删除所有镜像,然后下载之前传到仓库的镜像。

最后在客户端发现该镜像已存在。

原文链接:https://blog.51cto.com/fengjicheng/1901861

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享