(WJW)构建企业级Docker_Registry_V2
2015-11-26 17:54
881 查看
(WJW)构建企业级Docker_Registry_V2
目前Docker Registry版本是2.2,也是当前最新的版本.Registry2.2的特性有,目前是用go语言去写的,性能提升比v1能高2-3倍,安全和性能上有很多的提升,那么v1有哪些安全隐患呢?
v1版本,镜像的id是随机生成的,所以每次构建一个层都会随机生成一个新ID,即使是层的内容相同.这样会有一个风险就是层的内容文件会被串改,因为最终验证的是id,而不是里面的内容.
v2版本,镜像ID是通过sha256做hash得出来的,这样一来同样的内容就会得到的是一样的ID.镜像id这点能保证了,但还是有其他的问题.细心的同学会发现运行 docker pull 镜像下载完后,会看到 Digest 字段,看起来docker像是想用此字符来取代 tag .只是猜测不知道后续会发展成什么一样.
创建Registry2 Server端
说明:reg2.youyuan.cn这是docker registry2服务器的域名也就是你的公司docker私有服务器的主机地址,假定ip是
192.168.68.17;因为https的SSL证书不能用IP地址,我就随便起了个名字。
registry:2.2服务器作为上游服务器处理docker镜像的最终上传和下载,用的是官方的镜像。
下载registry2.2镜像
docker pull registry:2.2
生成自签名证书,如果是购买的证书就不用了,直接用购买的证书即可.假如域名是:
reg2.youyuan.cn
创建目录:
mkdir /opt/registry2 cd /opt/registry2 mkdir certs cd certs openssl req -x509 -days 3650 -subj '/CN=reg2.youyuan.cn/' -nodes -newkey rsa:2048 -keyout registry2.key -out registry2.crt
生成用户和密码
cd .. mkdir auth docker run --rm --entrypoint htpasswd registry:2.2 -Bbn docker docker > auth/htpasswd
用户:docker 密码:docker 可随便填写自己想填写的.
启动Registry2 Server
docker run --restart=always -d \ -e REGISTRY_AUTH=htpasswd \ -e REGISTRY_AUTH_HTPASSWD_REALM=Registry2_Realm \ -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \ -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/registry2.crt \ -e REGISTRY_HTTP_TLS_KEY=/certs/registry2.key \ -v /opt/registry2/auth:/auth \ -v /opt/registry2/certs:/certs \ -v /opt/registry2/registry:/var/lib/registry \ -p 5000:5000 \ --name=registry2 registry:2.2
确认Registry2 Server是 UP 状态,
docker ps -a | grep registry2
配置Docker client端
同Registry2 Server在同一台服务器上配置:
创建证书目录(没有此目录自己创建,注意端口号)mkdir -p /etc/docker/certs.d/reg2.youyuan.cn:5000
下载证书
cp /opt/registry2/certs/registry2.crt /etc/docker/certs.d/reg2.youyuan.cn:5000
域名解析,如果有DNS解析无需做此步骤(registry2-server-ip=192.168.68.17)
echo "192.168.68.17 reg2.youyuan.cn" >> /etc/hosts
其他主机配置:
创建证书目录(没有此目录自己创建,注意端口号)mkdir -p /etc/docker/certs.d/reg2.youyuan.cn:5000
域名解析,如果有DNS解析无需做此步骤(registry2-server-ip=192.168.68.17)
echo "192.168.68.17 reg2.youyuan.cn" >> /etc/hosts
下载证书
scp -r root@reg2.youyuan.cn:/opt/registry2/certs/registry2.crt /etc/docker/certs.d/reg2.youyuan.cn:5000
验证测试
登陆(注意加端口号)docker login reg2.youyuan.cn:5000
输入用户
docker,密码
docker以及邮箱
docker@gmail.com
或者: docker login -u docker -p docker -e "docker@gmail.com" https://reg2.youyuan.cn:5000
更改镜像tag
docker tag busybox reg2.youyuan.cn:5000/busybox:1.0
push 镜像
docker push reg2.youyuan.cn:5000/busybox:1.0
相关文章推荐
- docker容器的网络信息查看
- 公司企业新年贺词范例
- vbscript Registry 注册表操作实现代码(读写删除)
- 企业邮件管理有新招 网上网下轻松应对
- 我国企业电子商务交易总额达15000亿元
- 8个你可能不知道的Docker知识
- Windows SP2 免激活安装版 - DeepinXP PLUS V2 测试版 下载
- 使用jQuery.wechat构建微信WEB应用
- 在Docker中自动化部署Ruby on Rails的教程
- 用 Composer构建自己的 PHP 框架之基础准备
- 搭建基于Docker的PHP开发环境的详细教程
- 利用OpenVSwitch在多台主机上部署Docker的教程
- ubuntu14.04+docker的安装及使用
- Docker 清理命令集锦
- 再Docker中架设完整的WordPress站点全攻略
- 基于 Docker 开发 NodeJS 应用
- Zend的Registry机制的使用说明
- zf框架的registry(注册表)使用示例
- Java并发编程中构建自定义同步工具