1. 程式人生 > 實用技巧 >docker搭建本地私有倉庫

docker搭建本地私有倉庫

環境說明:兩臺裝有docker環境的centos7。安裝docker的步驟可以參考:https://www.cnblogs.com/maohai-kdg/p/13474024.html

https://www.cnblogs.com/maohai-kdg/p/13597315.html

非常的詳細

思路:搭建一個本地私有docker容器倉庫,本機或區域網內其他機器訪問本地私有倉庫,從而在大量部署的時候,可以非常快的拉取映象

操心你不懂的話不多說,反正我也不會看系列(手動微笑),直接上才藝。

建立宿主機儲存目錄,即放容器映象的路徑

mkdir -p /opt/data/registry

下載並啟動一個registry容器,-v指定映象檔案本地存放路徑

docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry --name private_registry registry

配置http許可權支援

vim /etc/docker/daemon.json

{
"insecure-registries":["192.168.92.134:5000"] }

重啟docker服務,重啟registry服務

systemctl restart docker
docker restart private_registry

現在,測試上傳和下載映象到本地倉庫

使用docker tag命令將映象標記為192.168.92.134:5000/test

docker tag ubuntu:18.04 192.168.92.134/test

推送到本地倉庫

docker push 192.168.92.134:5000/test

檢視上傳的映象

curl http://192.168.92.134:5000/v2/_catalog 

現在可以刪除本地的test映象,然後測試從本地倉庫重新下載映象

從本地倉庫拉取映象

docker pull 192.168.92.134:5000/test

docker images

區域網內其它機器訪問本地倉庫

如果是直接拉取會出現以下問題

出現這問題的原因是:Docker自從1.3.X之後dockerregistry互動預設使用的是HTTPS,但是搭建私有映象預設使用的是HTTP服務,所以與私有映象互動時出現以上錯誤。

需要修改docker daemon的啟動引數(需要訪問倉庫的其他機器),新增如下引數,表示信任這個私有倉庫,不進行安全證書檢查(centos7為例)

vim /usr/lib/systemd/system/docker.service

新增如下內容

--insecure-registry 192.168.92.134:5000

修改好後重啟docker服務和配置
systemctl daemon-reload
systemctl restart docker
 然後重啟所有容器
docker setart $(docker ps -aq)

然後再拉取,就好了

其它機器也可以上傳映象到本地倉庫