Docker倉庫之Registry私有映象倉庫的搭建與使用

谢友海發表於2024-11-03

本章將和大家分享Docker倉庫之Registry私有映象倉庫的搭建與使用。廢話不多說,下面我們直接進入主題。

一、官方標配:Registry私有映象倉庫

Docker Hub作為Docker預設官方公共映象倉庫,如果想要自己搭建私有映象倉庫,官方也提供了Registry映象,使得我們搭建私有倉庫變得非常簡單。

所謂私有倉庫,也就是在本地(區域網)搭建的一個類似公共倉庫的東西,搭建好之後,我們可以將映象提交到私有倉庫中。這樣我們既能使用 Docker 來執行我們的專案映象,也避免了商業專案暴露出去的風險。

下面就是詳細的基於Registry搭建私有倉庫的步驟,首先我們準備了兩臺Linux伺服器,他們的角色如下:

主機名 角色 備註
192.168.4.250 registry-server 部署registry容器
192.168.4.251 registry-consumer 從registry伺服器上下載映象使用

二、搭建映象倉庫

1、拉取私有倉庫映象

docker pull registry

2、建立並啟動一個私有倉庫容器

docker run -d -v /opt/images/registry:/var/lib/registry \
-p 5000:5000 \
--restart=always \
--name tianya-registry registry

此處的反斜槓 “\” 在Linux中表示換行的意思。

3、測試私有倉庫

在瀏覽器中輸入http://<your-server-ip>:5000/v2/_catalog,將<your-server-ip>替換為你的伺服器IP地址,如果能夠正常訪問,說明私有倉庫搭建成功。

也可以在客戶端檢視私有映象倉庫中的所有映象:

curl http://<your-server-ip>:5000/v2/_catalog

這裡返回的json資料代表倉庫中暫無映象,因為我們還沒有上傳任何映象。

三、上傳映象到私有倉庫

1、修改docker守護程序配置檔案

vim /etc/docker/daemon.json

加上下面這一句,讓 Docker 認為該地址是安全的,這裡的 “your-server-ip” 請替換為你的伺服器外網IP地址:

{
    "insecure-registries": [
        "your-server-ip:5000"
    ]
}

“insecure-registries”:不安全的登錄檔,用來配置 Docker 可以透過 HTTP 而非 HTTPS 連線的不安全映象倉庫地址,即:配置可信任地址。如果配置為0.0.0.0/0,則表示信任所有地址的所有私有倉庫。

示例:

儲存成功後,重新載入配置並重啟Docker服務:

sudo systemctl daemon-reload
sudo systemctl restart docker

2、標記映象

docker tag <image-id> <your-server-ip>:5000/<image-name>:<image-version>
或
docker tag your-image-name:tagname your-server-ip:5000/your-image-name:tagname

其中將<image-id>替換為你要上傳的映象的ID,<your-server-ip>替換為你的伺服器IP地址,<image-name>和<image-version>分別替換為映象的名稱和版本號(標籤名)。

示例:

docker tag nginx:latest 192.168.4.250:5000/nginx:v1
或
docker tag 39286ab8a5e1 192.168.4.250:5000/nginx:v1

3、推送映象到私有倉庫

docker push <your-registry-server-ip>:5000/<your-image-name>:<tagname>

示例:

docker push 192.168.4.250:5000/nginx:v1

推送完成後,可以檢視一下是否有真正的推送成功:

也可以在客戶端檢視私有映象倉庫中的所有映象:

curl http://<your-server-ip>:5000/v2/_catalog

可以看到,推送成功了。

四、從私有倉庫拉取映象

1、修改docker守護程序配置檔案

vim /etc/docker/daemon.json

同樣的,加上下面這一句,讓 Docker 認為該地址是安全的,這裡的 “your-server-ip” 請替換為你的伺服器外網IP地址:

{
    "insecure-registries": [
        "your-server-ip:5000"
    ]
}

“insecure-registries”:不安全的登錄檔,用來配置 Docker 可以透過 HTTP 而非 HTTPS 連線的不安全映象倉庫地址,即:配置可信任地址。如果配置為0.0.0.0/0,則表示信任所有地址的所有私有倉庫。

示例:

儲存成功後,重新載入配置並重啟Docker服務:

sudo systemctl daemon-reload
sudo systemctl restart docker

2、拉取私有倉庫中的映象

docker pull <your-server-ip>:5000/<your-image-name>:<tagname>

示例:

docker pull 192.168.4.250:5000/nginx:v1

可以發現拉取成功了。

3、檢視私有倉庫中的映象都有哪些版本

如果想要知道要下載的映象都有哪些版本(tag),可以透過下面這個api來獲取:

curl http://<your-server-ip>:5000/v2/<your-image-name>/tags/list

示例:

curl http://192.168.4.250:5000/v2/nginx/tags/list

至此本文就全部介紹完了,如果覺得對您有所啟發請記得點個贊哦!!!

此文由博主精心撰寫轉載請保留此原文連結:https://www.cnblogs.com/xyh9039/p/18509420

版權宣告:如有雷同純屬巧合,如有侵權請及時聯絡本人修改,謝謝!!!

相關文章