環境說明:兩台裝有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之后docker registry交互默認使用的是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)
然后再拉取,就好了
其它機器也可以上傳鏡像到本地倉庫