您的位置:首页 > 运维架构 > Docker

docker 私有仓库搭建及测试

2017-02-27 22:53 543 查看
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工具。

下载:






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




最后在客户端发现该镜像已存在。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  docker 私有仓库