1.Docker仓库

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

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

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

1)安装前准备

docker 私有仓库搭建及测试

固定主机名


docker 私有仓库搭建及测试

固定IP地址


docker 私有仓库搭建及测试

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


docker 私有仓库搭建及测试

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


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

docker 私有仓库搭建及测试

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

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


docker 私有仓库搭建及测试

生成根**

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

"2048"为**长度。


docker 私有仓库搭建及测试

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


docker 私有仓库搭建及测试

docker 私有仓库搭建及测试

nginx生成**(在nginx服务器)


docker 私有仓库搭建及测试

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


docker 私有仓库搭建及测试

docker 私有仓库搭建及测试

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


docker 私有仓库搭建及测试

出现提示时,输入两次y

证书生成


3)安装、配置、运行nginx

docker 私有仓库搭建及测试

创建运行账户和组


docker 私有仓库搭建及测试

docker 私有仓库搭建及测试

编译安装nginx


docker 私有仓库搭建及测试

优化nginx启动执行路径


docker 私有仓库搭建及测试

docker 私有仓库搭建及测试

修改nginx.conf


docker 私有仓库搭建及测试 

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


docker 私有仓库搭建及测试

添加防火墙例外


4)配置运行docker

需要先关闭docker服务

docker 私有仓库搭建及测试

docker 私有仓库搭建及测试

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


docker 私有仓库搭建及测试


docker 私有仓库搭建及测试

启动docker服务


5)运行私有仓库容器

docker 私有仓库搭建及测试

导入registry.tar


docker 私有仓库搭建及测试

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


docker 私有仓库搭建及测试

docker 私有仓库搭建及测试

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


2.配置客户机

1)配置前准备

docker 私有仓库搭建及测试

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

 

docker 私有仓库搭建及测试

docker 私有仓库搭建及测试

拷贝证书,并且重命名。


docker 私有仓库搭建及测试

测试仓库是否可用


docker 私有仓库搭建及测试

注册账户


2)上传下载镜像

docker 私有仓库搭建及测试

客户端已存在的镜像


上传:

docker 私有仓库搭建及测试

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


docker 私有仓库搭建及测试

docker 私有仓库搭建及测试

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


下载:

docker 私有仓库搭建及测试

docker 私有仓库搭建及测试

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


docker 私有仓库搭建及测试

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


转载于:https://blog.51cto.com/fengjicheng/1901861

相关文章: