Docker Registry


前言

上一篇文章講了Docker Machine實現多主機Docker節點的管理。本文講解如何實現Docker Registry,其實這個在第一篇Docker入門一文中已經簡單介紹,本文僅是對一些細節做個說明。

Why Docker Registry?

有時我們的服務器無法訪問互聯網,或者你不希望將自己的鏡像放到公網當中,那么你就需要Docker Registry,它可以用來存儲和管理自己的鏡像。

How to install Docker Registry?

其實創建私有的Docker倉庫非常簡單,只需要運行一個Registry容器即可,該容器存儲在Docker HUB中。

docker run -d -p 5000:5000 -v /myregistry:/var/lib/registry registry

-d 是后台啟動容器。

-p 將容器的 5000 端口映射到 Host 的 5000 端口。5000 是 registry 服務端口。

-v 將容器 /var/lib/registry目錄映射到宿主機的/myregistry,用於存放鏡像數據。

How to use Docker Registry?

理論上我們已經搭建好了自己的私有鏡像倉庫,但這時候還有一些問題需要我們解決。

在pull或者push鏡像時報拒絕連接的錯誤。

這是由於Registry為了安全性考慮,默認是需要證書支持的,證書這塊我倒沒有研究過,可以通過一個簡單的辦法解決。創建或者修改/etc/docker/daemon.json文件,並在其中寫入

{
    "insecure-registries": ["<ip>:5000"] 
}

其中 為安裝了Registry的機器ip地址。需要注意的是在安裝registry的節點和客戶端需要訪問私有Registry的節點都需要執行此步操作。

修改文之后執行以下命令重啟節點docker。

systemctl daemon-reload
systemctl restart docker

我是在ubuntu16環境進行的上述操作,其他系統可以參考相應命令。

通過 docker tag重命名鏡像,使之與registry匹配。

docker tag wsf <ip>:5000/wsf:v1

給wsf鏡像重命名為 :5000/wsf:v1,v1為版本號,前面必須要加上域名或IP地址(運行上面registry容器的地址)和端口號。

其實Docker HUB與我們要建立的私有Registry沒有本質的區別。

docker run ubuntu 

語句從官方hub中尋找鏡像,它是

docker run docker.io/library/ubuntu 

的簡寫。

docker.io即是上面的ip地址,端口號為80省略。

上傳鏡像

docker push <ip>:5000/wsf:v1

下載鏡像

docker pull <ip>:5000/wsf:v1

上傳和下載鏡像都可以在任意能訪問Registry的節點上進行。前提是此節點必須進行上述的修改daemon.json操作。

查看Registry中所有鏡像信息

curl http://<ip>:5000/v2/_catalog

此語句會返回一個json,包含當前Registry中存儲的鏡像信息。

總結

本文簡單為大家介紹了Docker Registry的相關細節,有了這個東西就能更好的實現docker的多主機管理和我們自定義鏡像的管理。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM