Docker系列教程03-Docker私有倉庫搭建(registry)

簡介

倉庫(Repository)是集中存放鏡像的地方,又分爲公共鏡像和私有倉庫。

當我們執行docker pull xxx的時候,它實際上是從registry.docker.com這個地址去查找,這就是Docker公司爲我們提供的公共倉庫。在工作中,我們不可能把企業項目上傳到公共倉庫進行管理,所以爲了更多管理鏡像,Docker允許我們搭建本地私有倉庫。

私有倉庫最常用的就是registryHarbor兩種,那接下來詳細介紹如何搭建私有倉庫。

搭建registry私有倉庫

Docker 官方提供了一個搭建私有倉庫的鏡像registry,只需把鏡像下載下來,運行容器並暴露5000端口,就可以使用了。代碼如下:

1、下載鏡像
docker pull registry:2

2、運行容器
docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --name myregistry registry:2

registry服務默認將上傳的鏡像保存在容器的/var/lib/registry,使用-v參數將容器的/var/lib/registry目錄映射到本地/opt/registry目錄。即可實現將鏡像保存到宿主機/opt/registry目錄。

瀏覽器訪問http://宿主機IP:5000/v2,顯示“{}” 說明registry運行正常。

上傳鏡像到私有倉庫

現在通過push將鏡像上傳至私有倉庫,具體步驟如下:

1、下載docker hub官方鏡像
docker pull ubuntu

2、將鏡像標誌爲要推送到私有倉庫:
docker tag ubuntu:latest 10.43.187.251:5000/myubuntu:v1

3、上傳鏡像到私有倉庫
[root@qll251 ~]# docker push 10.43.187.251:5000/myubuntu:v1
The push refers to repository [10.43.187.251:5000/myubuntu]
Get https://10.43.187.251:5000/v2/: http: server gave HTTP response to HTTPS client

注意,上傳鏡像時報錯了:http: server gave HTTP response to HTTPS client

出現這個問題原因是:Docker自從1.3.X之後docker registry交互默認使用的是HTTPS,但是搭建私有鏡像默認使用的是HTTP服務,所以與私有倉庫交互時出現以上錯誤。

解決辦法:

1、編輯 /etc/docker/daemon.json,在文件中寫入:

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

2、重啓生效:

systemctl daemon-reload
systemctl restart docker

再次上傳,問題解決:

docker pull 10.43.187.251:5000/myubuntu:v1

客戶端下載私有鏡像

我們在另外一臺docker機器上,進行pull測試:

[root@qll252 ~]# docker pull 10.43.187.251:5000/myubuntu:v1
Trying to pull repository 10.43.187.251:5000/myubuntu ...
Get https://10.43.187.251:5000/v1/_ping: http: server gave HTTP response to HTTPS client

會發現跟前面上傳鏡像報了同樣的錯誤。

解決方法同上:

再次從私有倉庫中下載鏡像:

[root@qll252 ~]# docker pull 10.43.187.251:5000/myubuntu:v1
Trying to pull repository 10.43.187.251:5000/myubuntu ...
v1: Pulling from 10.43.187.251:5000/myubuntu
d51af753c3d3: Pull complete
fc878cd0a91c: Pull complete
6154df8ff988: Pull complete
fee5db0ff82f: Pull complete
Digest: sha256:5747316366b8cc9e3021cd7286f42b2d6d81e3d743e2ab571f55bcd5df788cc8
Status: Downloaded newer image for 10.43.187.251:5000/myubuntu:v1

驗證通過,到此已完成私有倉庫的搭建工作了。

說明:在後續教程我們學習到docker-compose時,再爲大家介紹企業級Harbor私有倉庫及搭建過程。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章