docker 搭建私有倉庫
本篇文章描述了多個機器可以在內網中訪問自己的私有倉庫,訪問倉庫時需要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目錄下:
$ mkdir certs
創建證書
$ 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機器, 拉取鏡像
$ sudo docker pull registry
創建容器
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地址
$ vim /etc/hosts
將my.com地址配置爲私有倉庫的ip地址,在hosts裏添加:
172.18.222.77 my.com
6.配置證書
將生成的證書cp到/etc/docker/certs.d/my.com:5000/ca.crt
,需要用域名my.com拉鏡像的都需要配置.
docker最好重啓一下
$ service docker restart
7.測試
在裝有私有倉庫執行以下操作
$ docker tag registry my.com:5000/registry
$ docker push my.com:5000/registry
$ docker pull my.com:5000/registry
在另一臺機器上執行
$ docker pull my.com:5000/registry
然後執行
$ docker images
輸出
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