本章將和大家分享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
版權宣告:如有雷同純屬巧合,如有侵權請及時聯絡本人修改,謝謝!!!