本篇文章描述了多个机器可以在内网中访问自己的私有仓库,访问仓库时需要CA认证!最简单,最低保障私有仓库的安全性!在一个比较庞大的集群里,可以运行多个私有仓库的replica,然后借用代理来balance请求!
1.测试环境
本人测试环境为ubuntu 14.04,Docker版本1.6.4(版本稍微比较老,新版本安装流程是一样的).官网上说:You need to install Docker version 1.6.0 or newer.
在阿里云上开了两台机器:
CPU: 1核 内存: 1024 MB (I/O优化)
112.74.165.87(公)
172.18.222.77(私有)
112.74.166.40(公)
172.18.222.78(私有)
2. 安装docker(两台机器)
3.用openssl 创建CA证书
在172.18.222.77机器, root目录下:
1
|
$ mkdir certs |
创建证书
1
2
3
|
$ openssl req \ -newkey rsa:2048 -nodes -keyout certs /domain .key \ -x509 -days 365 -out certs /domain .crt |
会在certs目录下生成一个key和crt
4.启动容器用ca
在172.18.222.77机器, 拉取镜像
1
|
$ sudo docker pull registry |
创建容器
1
2
3
4
5
|
docker run -d -p 5000:5000 --restart=always --name registry \ - v ` pwd ` /certs : /certs \ -e REGISTRY_HTTP_TLS_CERTIFICATE= /certs/domain .crt \ -e REGISTRY_HTTP_TLS_KEY= /certs/domain .key \ registry |
5.配置hosts文件(两台机器)
配置ip地址
1
|
$ vim /etc/hosts |
将my.com地址配置为私有仓库的ip地址,在hosts里添加:
1
|
172.18.222.77 my.com |
6.配置证书
将生成的证书cp到/etc/docker/certs.d/my.com:5000/ca.crt ,需要用域名my.com拉镜像的都需要配置.
docker最好重启一下
1
|
$ service docker restart |
7.测试
在装有私有仓库执行以下操作
1
2
3
|
$ docker tag registry my.com: 5000 /registry $ docker push my.com: 5000 /registry $ docker pull my.com: 5000 /registry |
在另一台机器上执行
1
|
$ docker pull my.com:5000 /registry |
然后执行
1
|
$ docker images |
输出
1
2
3
4
|
busybox latest c40e708042c6 3 days ago 1.11 MB my.com:5000 /buuu latest c40e708042c6 3 days ago 1.11 MB my.com:5000 /bu 1 c40e708042c6 3 days ago 1.11 MB my.com:5000 /registry latest 71606dce0120 2 weeks ago 37.62 MB |
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!