Docker(Ubuntu)私有庫建立步驟
Docker私設服務器官方操作規範:
https://docs.docker.com/registry/deploying/#copy-an-image-from-docker-hub-to-your-registry
Docker 自帶註冊鏡像registry ,啓動該鏡像後變可自定義設置私設服務器.
1. 環境準備
裝有Docker的2臺 Ubuntu虛擬機,私有庫
以10.130.45.223 爲案例.
2.下載私有項目
首先在機器上下載registry鏡像: $ sudo docker pull registry
下載完之後我們通過該鏡像啓動一個容器:
$ docker run -d -ti --restart always --name docker-hub -p5000:5000 -v /docker-hub/registry:/var/lib/registry registr
默認情況下,會將倉庫存放於容器內的/var/lib/registry(官網Dockerfile中查看)目錄下,這樣如果容器被刪除,則存放於容器中的鏡像也會丟失,所以我們一般情況下會指定本地一個目錄掛載到容器內的/var/lib/registry下
(a).run 起來後可以訪問http://10.130.45.223:5000/v2/_catalog 查看庫存界面
(b). curl -XGET 10.130.45.223:5000/v2/_catalog也可以收到指令提示
3.本地服務器IP設置
http訪問:
只需添加信賴,因爲我們啓動的registry服務不是安全可信賴的。這是我們需要修改docker的目錄/etc/docker/下創建 daemon.json 文件,添加下面的內容:
echo '{"insecure-registries":["10.130.45.223:5000"] }' > /etc/docker/daemon.json
https訪問:
需要製作https自簽名證書,https的ssl證書不允許使用ip地址,需要通過223的dns服務器設置宿主機域名爲:ubuntu.vsct.io
製作CA證書:
openssl genrsa -des3 -out ca.key 2048 #生成私鑰,後面這個2048是密鑰長度
openssl req -new -x509 -days 7305 -key ca.key-out ca.crt #生成公鑰
生成服務端證書並用CA簽名認證:
openssl genrsa -des3 -out ubuntu.vsct.io.key2048 #生成ubuntu.vsct.io.key證書私鑰
openssl req -new -key ubuntu.vsct.io.key -outubuntu.vsct.io.csr # 生成簽名請求,common name填寫域名
openssl ca -policy policy_anything -days 1460-cert ca.crt -keyfile ca.key -in ubuntu.vsct.io.csr -out ubuntu.vsct.io.crt # 使用CA進行簽名
客戶端安裝證書;
把生成的客戶端證書放到 /etc/docker/certs.d/ubuntu.vsct.io/ca.crt 下
4.本地服務器上傳下載測試
修改文件或者配置證書後都需要
systemctl restart docker.service
可以隨便下載個鏡像push 到私設服務器中,這裏選用本地鏡像換個標籤名字推送到私設服務器.
docker tag ubutun test-public-ubuntu
docker push test-public-ubuntu
然後可以嘗試下載
docker pull test-public-ubuntu