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

在上一篇中,我們使用docker commit 命令,創建了一個帶有vim的Ubuntu鏡像。那麼怎麼將這個鏡像分享出去呢?本文就來講解如何將本地的docker鏡像發佈到阿里雲上。

本文主要內容:

1:本地鏡像發佈到阿里雲流程

2:鏡像的生成方法

3:將本地鏡像推送到阿里雲倉庫

4:將阿里雲倉庫上的鏡像下載到本地

1:本地鏡像發佈阿里雲遠程倉庫流程:

拉取base鏡像>>本地進行相關修改>>commit提交修改內容及tag>>使用命令(Dockerfile)將本地鏡像提交到阿里雲遠程鏡像倉庫或者是私服鏡像倉庫中>>拉取遠程倉庫鏡像>>修改。這個流程循環。具體如下圖:

0d6997b6ed48ec6fab32f6a75a823035.png

2:鏡像生成方法:

第一種方法就是 docker commit。使用commit命令生成本地鏡像。這一個在上一篇commit實戰中,已經詳細講解過,這裏就不多說了。想要了解的請移步到:《Docker學習6-Docker鏡像commit操作案例》,查看詳情。

第二種方法,就是要使用到DockerFile了,這個也是我們以後會常用到的,這種方法,在後面高級篇中,會詳細講解,現在是在基礎階段,這裏也不多少了,大家可以跟着凱哥一起一步一步學習。

2a5860e4dbc487aabb5590879e70fc39.png

3:將本地鏡像推送到阿里雲遠程倉庫

注意:是先有命名空間,然後才能創建倉庫的。倉庫是歸屬於某個命名空間下的。

3.1:在個人實例>>倉庫管理>>命名空間>>創建命名空間。然後輸入命名空間的名稱即可。可以把這個命名空間理解爲咱們Java中的包名。具體操作如下圖:

72f0e73440396d735f976d974db6a1ae.png

創建完成之後,把可以把默認倉庫類型設置爲公開的。設置成公共的,這樣在組內就是共享的,同組能人員就可以直接從遠程拉取鏡像了。如同咱們的git一樣,提交阿里雲遠程倉庫後,其他人也可以拉取一樣的道理。

3.2:創建鏡像倉庫

3.2.1:選擇命名空間

點左側導航欄中的鏡像倉庫>>全部命名空間>>選擇需要創建倉庫的命名空間>>創建鏡像倉庫。如下圖:

3a59a205b2ac8ea5a866a7622f74e20d.png

3.2.2:創建鏡像倉庫

選擇好命名空間後,點擊創建鏡像倉庫按鈕>>在彈出窗口中輸入倉庫名稱、倉庫了下、摘要等信息.

7514aeb53380c92dbaf1bbe4ccec4b2b.png

注意,倉庫名稱有限制:長度爲2-64個字符,可使用小寫英文字母、數字,可使用分隔符“_”、“-”、“.”(分隔符不能在首位或末位)

點擊下一步,之後是讓選擇代碼的來源。

分爲:CodeUp、雲Code、GitHub、BitBucket、私有GitLab、本地倉庫.非本地倉庫的點擊後,綁定賬號之後,都可以在構建設置中,選擇代碼變更自動構建鏡像功能。

c803efecba9f14fb30a2955580f7c9f4.png

因爲本次,咱們是從本地倉庫提交到阿里雲遠程倉庫的,所以,咱們就選擇本地倉庫,然後點擊創建鏡像倉庫。如下圖:

803d8d3ac9df7e370f9ed85daf5a46d5.png

提交之後,我們可以看到有一堆的命令。先登錄、可以從registry中拉取鏡像、將鏡像推送到Registry等命令。具體如下圖:

d19cef5f120175d2fac41473c4555a92.png

本次,實戰案例,我們是要將鏡像推送到Registry上。所以,我們就選擇3模塊的三條命令即可。

4:將本地鏡像推送到阿里雲遠程倉庫

通過上面第三步驟,我們已經獲取到將本地鏡像推送的阿里雲遠程倉庫的命令了。接下來,我們就來進行實戰操作。

獲取到提交阿里雲遠程倉庫的腳本:

 docker login --username=修改成你自己的賬號 registry.cn-hangzhou.aliyuncs.com

 docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/kaigejava/my_kaigejava:[鏡像版本號]

 docker push registry.cn-hangzhou.aliyuncs.com/kaigejava/my_kaigejava:[鏡像版本號]

根據上面三個命令我們根據操作,可以得到下:

a3971cf066e59e5acf14386346460d90.png

5:將阿里雲遠程倉庫上的鏡像下載到本地

使用到的命令,在上面第三步中也能獲取到。

步驟:

1:登錄;2:從Registry中拉取鏡像。直接從頁面中複製對應的命令即可。

2f0bdf3610adbdd3d98268b3edef9212.png

拉取前,我們先來看看,現在我們本地已經有的鏡像,使用:docker images命令

50e7b30bb37e8c40c556c95c096b7eab.png

執行從遠程拉取鏡像命令:

命令公式:

docker pull registry.cn-hangzhou.aliyuncs.com/kaigejava/my_kaigejava:[鏡像版本號]

2e3f5c19edc8ef2053991a4ccd05aeb4.png

拉取完成之後,我們再來查查本地現有的鏡像,來驗證是否拉取成功。

014b3e7b869ec5e1e986ba193defb3b4.png

我們可以看到,已經有我們提交的阿里雲遠程倉庫鏡像了。說明,本地拉取成功。

拉取下來之後,我們來運行下鏡像,驗證,我們在上一篇文章中添加的vim命令是否已經存在這個鏡像中。使用到的命令公式:

docker run -it 鏡像id /bin/bash 

34285787bb90b222efd6885340c43184.png

vim命令可以正常使用了。說明,從遠處拉取到的鏡像已經包含了添加的vim命令。

好了,至此,我們已經將本地鏡像提交到阿里雲遠程倉庫及從遠程倉庫拉取鏡像操作了。在下一篇文章中,凱哥將詳細介紹,怎麼將本地倉庫提交到本地私服上去。

 

直通車,本系列教程已發佈文章,快速到達,《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學習教程系列彙總】筆記及遇到問題解決文章

 

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

 

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