【Docker學習教程系列】8-如何將本地的Docker鏡像發佈到私服?

通過前面的學習,我們已經知道,怎麼將本地自己製作的鏡像發佈到阿里雲遠程鏡像倉庫中去。但是在實際工作開發中,一般,我們都是將公司的鏡像發佈到公司自己搭建的私服鏡像倉庫中,那麼一個私服的鏡像倉庫怎麼搭建?怎麼將自己的鏡像推送到私服倉庫中呢?怎麼驗證是否成功呢?本文咱們就一起來學學怎麼將鏡像推送到私服鏡像中。

8b1beb078ed0393bc30727cb6ed955b9.png

大家好,我是凱哥Java(kaigejava),樂於分享,每日更新技術文章,歡迎大家關注“凱哥Java”,及時瞭解更多。讓我們一起學Java。

文末送上本系列教程其他文章直通車,歡迎大家系統地去學習

本文目錄:

1:下載鏡像 DockerRegistry

2:運行私有庫Registry,相當於本地有個私有的Docker hub

3:案例演示創建一個新鏡像,ubuntu安裝ifconfig命令

安裝ifconfig

查看現有鏡像:

4:curl驗證私服庫上有什麼鏡像

5:將新鏡像修改符合私服規範的tag

6:修改配置文件使之支持http

7:push推送到私服

8:curl驗證私服上有什麼鏡像第二次查看

9:pull到本地並運行

從私服拉取命令:

重新查看本地鏡像:

 

docker私有鏡像倉庫:Docker Registry是官方提供的工具,可以用於構建私有鏡像倉庫

本地搭建私有倉庫步驟

1:下載鏡像 DockerRegistry

命令:

docker pull registry

5ba5a8c473603cbd520ebad0700b89fc.png

2:運行私有庫Registry,相當於本地有個私有的Docker hub

命令:

docker run -d -p 端口:端口 -v 容器地址:映射地址 --privileged-true registry

默認情況,倉庫被創建在容器的/var/lib/registry目錄下,建議自行用容器卷映射,方便宿主機兩條

實例:

docker run -d -p 5000:5000 -v /n/myregistry/:/tmp/registry --privileged=true registry

28f71eb4c6d764ae183c2e3cac75778c.png

查看docker正在運行的容器:

f70d1613114701609bc38702c72e53f5.png

3:案例演示創建一個新鏡像,ubuntu安裝ifconfig命令

99db5363f4b4dd7c1c37294534e306f4.png

安裝ifconfig

在容器中執行下面兩個命令:

apt-get update

apt-get install net-tools

cd146e9ce3c59f636b3dcdb135b4543b.png

使用commit命令製作一個帶有ifconfig的ubuntu.

注意,docker commit命令是在宿主機上執行的

套用公式:

docker commit -m"add ifconfig" -a"凱哥Java" 0930939e6f99 kagejava/ifconfigubuntu:1.0.1

查看現有鏡像:

cee0aad0fb38e629e64baef4c4ad66b4.png

4:curl驗證私服庫上有什麼鏡像

命令:

curl -XGET http://192.168.50.128:5000/v2/_catalog

說明:192.xxx是虛擬機的地址

4862d6a0d5ad5f58b8a040db89b49410.png

可以看到私服上面是空的。

5:將新鏡像修改符合私服規範的tag

命令公式

docker tag 鏡像:Tag HOST:Port、Repository:Tag

注意:自己host主機ip地址。也就是虛擬機的ip地址

使用命令將:kaigejava/ifconfigubuntu:1.0.1 這個鏡像修改爲:192.168.50.128:5000/kagejavaifconfig:1.0.1

docker tag kagejava/ifconfigubuntu:1.0.1 192.168.50.128:5000/kaigejavaifconfig:1.0.1

b07cda99f6d2030fab57c1d947cb0165.png

說明:192.168..50.128是虛擬機主機的ip.

命令執行完成之後,查看當前imags.如下圖:

9f369c30ed0eb16ecef258df61b027fd.png

6:修改配置文件使之支持http

在docker的json文件中添加

"insecure-registries":["192.168.50.128:5000"]

注意修改ip及添加逗號

02329eee5e0c9df8c86b441a3ccd6687.png

9ae96ba58a0b4dea103b1127686b2422.png

重啓docker命令:

systemctl restart docker

重啓docker後,重啓私服

docker run -d -p 5000:5000 -v /n/myregistry/:/tmp/registry --privileged=true registry

7:push推送到私服

命令公式:

docker push ip:斷開/鏡像信息:版本

d481bf70b687fcb979c16e179779fe29.png

當出現以下說明已經push成功:

e7c7b1164a735b3c69a6e795e7a533e9.png

8:curl驗證私服上有什麼鏡像第二次查看

命令:

curl -XGET http://192.168.50.128:5000/v2/_catalog

23320477545b8edde2e7c5dedf008ace.png

可以看到,我們已經將新的鏡像上傳到私服上了。

9:pull到本地並運行

911d1971712c8e968dbace199e19e1ee.png

從私服拉取命令:

docker pull ip:端口/鏡像名:版本號

0c23aa8b359a690312a2be78678e89ec.png

重新查看本地鏡像:

68745608fece315ffb6a86105ed7239a.png

 

直通車,本系列教程已發佈文章,快速到達,《Docker學習系列》教程已經發布的內容如下:

【圖文教程】Windows11下安裝Docker Desktop

【填坑】在windows系統下安裝Docker Desktop後遷移鏡像位置

【Docker學習系列】Docker學習1-docker安裝

【Docker學習系列】Docker學習2-docker設置鏡像加速器

【Docker學習系列】Docker學習3-docker的run命令幹了什麼?docker爲什麼比虛擬機快?

【Docker學習系列】Docker學習2-常用命令之啓動命令和鏡像命令

【Docker學習系列】Docker學習系列3:常用命令之容器命令

【Docker學習系列】Docker學習4-常用命令之重要的容器命令

【Docker教程系列】Docker學習5-Docker鏡像理解

【Docker教程系列】Docker學習6-Docker鏡像commit操作案例

【Docker學習教程系列】7-如何將本地的Docker鏡像發佈到阿里雲

【Docker學習教程系列彙總】筆記及遇到問題解決文章

 

大家好,我是凱哥Java(kaigejava),樂於分享,每日更新技術文章,歡迎大家關注“凱哥Java”,及時瞭解更多。讓我們一起學Java

 

 

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