Docke官方提供了Docker Hub网站来作为一个公开的集中仓库。然而,本地访问Docker Hub速度往往很慢,并且很多时候我们需要一个本地的私有仓库只供网内使用。
Docker仓库实际上提供两方面的功能,一个是镜像管理,一个是认证。前者主要由docker-registry项目来实现,通过http服务来上传下载;后者可以通过docker-index(闭源)项目或者利用现成认证方案(如nginx)实现http请求管理。
系统环境:CentOS 7.2
主机IP:192.168.116.148
1、安装docker-registry
?
1 |
|
2、上传镜像
查看系统已有的镜像:
?
1 2 3 4 |
|
使用docker tag将centos镜像打个标记
?
1 |
|
使用docker push 上传标记的镜像
?
1 |
|
没有成功,这是因为从docker1.3.2版本开始,使用registry时,必须使用TLS保证其安全。
在/etc/docker/目录下,创建daemon.json文件。在文件中写入:
?
1 |
|
然后重启docker:
?
1 |
|
重新上传:
接下来开始配置https
3、配置SSL证书及nginx反向代理docker registry
搭建私有CA,初始化CA环境,在/etc/pki/CA/下建立证书索引数据库文件index.txt和序列号文件serial,并为证书序列号文件提供初始值。
?
1 2 |
|
生成密钥并保存到/etc/pki/CA/private/cakey.pem
?
1 |
|
生成根证书
?
1 |
|
需要填写的信息:
?
1 2 3 4 5 6 7 |
|
使系统信任根证书
?
1 |
|
安装nginx
安装过程略,安装路径为/app/nginx,需要安装openssl模块。
签发证书
创建ssl目录用来存放密钥文件和证书申请文件
?
1 |
|
创建密钥文件和证书申请文件
?
1 2 |
|
填写的申请信息前四项要和私有CA的信息一致
?
1 2 3 4 5 6 7 8 9 10 11 12 |
|
签署,证书
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
|
配置nginx反向代理docker registry
添加认证
?
1 2 |
|
nginx相关配置:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
|
重启nginx
?
1 |
|
如果没有DNS解析内网域名,修改hosts文件
?
1 2 3 |
|
重启docker
?
1 2 |
|
登录
上传镜像
?
1 2 3 |
|
查看
?
1 2 |
|
局域网内其他机器认证(192.168.116.147 系统版本:CentOS6.5)
修改hosts文件
?
1 2 3 |
|
把CA的密钥发送到客户机,并添加到ca-bundle.crt
?
1 2 3 |
|
重启docker
?
1 |
|
登录
下载镜像
至此,私服基本上可以使用了。
转载:http://www.cnblogs.com/Eivll0m/p/7089675.html
原文地址:https://www.cnblogs.com/yjt1993/p/9915543.html