Docker 搭建本地倉庫
1、網絡依賴性強,鏈接速度限制;
2、私有化資料存放網絡不安全
3、私有化倉庫需要收費,存在安全風險
解決方案使用本地registry
Docker已經講registry開源了,同時在Docker Hub上也有官方鏡像registry
我們可以直接使用:
(1)啟動registry容器
shell>docker run -d -p 5000:5000 -v /myregistry:/var/lib/registry registry:2
使用registry:2的鏡像
-d 後臺運行
-p 講容器的5000端口映射到主機的5000端口
-v 將容器/var/lib/registry目錄映射到Host的/myregistry/docker,用於存放鏡像數據
驗證:shell>docker ps 查看倉庫容器是否啟動
(2)本地下載一個測試鏡像
shell>docker pull centos
(3)通過docker tag 重命名本地鏡像,與registry匹配
shell>docker tag centos 倉庫服務器地址:5000/用戶名/centos:v1
shell>docker tag centos x.x.x.x:5000/testname/centos:v1
repository的完整格式為:
Docker Hub 上可以省略[registry-host]:[port],默認為docker.io
(4)docker pull/push測試
shell>docker pull x.x.x.x:5000/testname/centos:v1
(5)上傳的鏡像在該目錄下
/myregistry/docker/registry/v2/repositories/docker39/cetnos_httpd/
提示:
shell>docker pull x.x.x.x:5000/testname/cetnos
Using default tag: latest
Error response from daemon: Get https://x.x.x.x:5000/v2/: http: server gave HTTP response to HTTPS client
centos系統通過:修改或者添加daemon.json文件,重啟docker服務即可
shell>vim /etc/sysconfig/daemon.json
{"insecure-registries":["x.x.x.x:5000"]}
shell>systemctl restart docker //重啟服務後,記得啟動registry倉庫容器
Docker 搭建本地倉庫