1. 程式人生 > >Docker 搭建本地倉庫

Docker 搭建本地倉庫

提示 sco 鏡像 def 數據 daemon centos 目錄 docke

Docker Hub 公有倉庫存在以下缺點:
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 push x.x.x.x:5000/testname/centos:v1
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

這是docker不支持https
centos系統通過:修改或者添加daemon.json文件,重啟docker服務即可
shell>vim /etc/sysconfig/daemon.json
{"insecure-registries":["x.x.x.x:5000"]}

shell>systemctl restart docker //重啟服務後,記得啟動registry倉庫容器

Docker 搭建本地倉庫