最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

docker/docker desktop for window環(huán)境下創(chuàng)建本地鏡像倉庫方式

 更新時(shí)間:2025年03月14日 09:42:35   作者:Stephen·You  
這篇文章主要介紹了docker/docker desktop for window環(huán)境下創(chuàng)建本地鏡像倉庫方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

問題現(xiàn)象

最近在研究如何在window服務(wù)器環(huán)境中創(chuàng)建docker本地鏡像倉庫,由于網(wǎng)上幾乎都是基于Linux服務(wù)器環(huán)境的,所以就能通過參考學(xué)習(xí)和實(shí)踐,來完成這個(gè)目標(biāo)。

問題分析

通過自學(xué),發(fā)現(xiàn)了創(chuàng)建docker鏡像倉庫的一些基本的邏輯原理,這是無論在window還是linux環(huán)境下,都肯定是一樣的。

注意:docker中直接下載后的鏡像是存放在本地docker庫中,而不是本機(jī)私有鏡像倉庫的!

區(qū)別

本地docker庫:是安裝docker后,docker服務(wù)中自帶的庫。

本機(jī)私有鏡像倉庫:是在docker服務(wù),啟動(dòng) registry 容器,從而創(chuàng)建的一個(gè)用于存放鏡像的庫,由于容器可以和本機(jī)端口綁定,所以也被稱為本機(jī)私有鏡像倉庫。

配置

window,docker/docker desktop(window環(huán)境建議使用docker desktop

步驟

1.啟動(dòng)docker desktop,打開cmd命令窗口,輸入:

docker search registry

2.看到registry鏡像,輸入:

docker pull registry

3.查看鏡像,看到已經(jīng)下載到本地的registry鏡像

docker images    #查看本地鏡像,可以看到registry鏡像

4.查看鏡像,看到已經(jīng)下載到本地的registry鏡像,下一步就是部署registry服務(wù)容器,

先在本機(jī)創(chuàng)建一個(gè)文件夾(如:E盤 下創(chuàng)建一個(gè) registry 文件夾,并設(shè)置為共享

輸入:

docker run -d -p 5000:5000 --restart=always -v E:/registry:/var/lib/registry registry:latest

設(shè)置自重啟,綁定本機(jī)5000端口,同時(shí)映射容器中鏡像存放位置的路徑到本機(jī)路徑中。

5.查看容器,看到已經(jīng)部署好的registry容器,輸入:

docker ps    #查看運(yùn)行中的容器

6.容器部署好之后,本機(jī)的鏡像倉庫就建好了,接下來就是要添加倉庫地址,才能實(shí)現(xiàn)連接。

在docker desktop中可以直接實(shí)現(xiàn)可視化配置,簡單方便:把鏡像倉庫地址(本機(jī)ip:5000)添加到 insecure-registries

7.重啟docker desktop,通過重命名(docker tag 鏡像id 鏡像新標(biāo)簽名)創(chuàng)建一個(gè)新鏡像,注意格式,必須是(本機(jī)ip:5000/)開頭

8.上傳鏡像到本地鏡像倉庫,輸入:

docker push 

由于我事先上傳過一次,所以顯示 Layer already exists(數(shù)據(jù)已存在)

能看到 latest:digest:sha256:、、、 size:。。。(即為push成功)

下面演示一個(gè)首先上傳鏡像的結(jié)果圖例子:

9.查看本機(jī)鏡像倉庫地址中的鏡像,驗(yàn)證鏡像是否成功上傳:

方法1:打開瀏覽器,輸入 本機(jī)ip:5000/v2/_catalog 可以訪問docker接口,查看鏡像信息,(該方法是最準(zhǔn)確的):

方法2:直接打開 本機(jī)的 E:\registry\docker\registry\v2\repositories 文件路徑,因?yàn)樗戌R像都會(huì)存放在這個(gè)目錄下,可以看見里面有個(gè)registry文件夾,這個(gè)文件夾就是剛才push的鏡像數(shù)據(jù)文件:

注意:這里建議新手不要用registry鏡像來測試,因?yàn)檫@個(gè)鏡像的名字容易和路徑中的registry混淆,概念不同,需區(qū)別開來。

進(jìn)入該文件可以看到以下信息,則表示push成功

10.刪除本機(jī)鏡像倉庫中的鏡像,一開始我想到在本機(jī)文件夾中直接刪除的方法,但是有弊端:

打開本機(jī)的 E:\registry\docker\registry\v2\repositories 文件路徑,刪除這個(gè) registry文件夾;

同理再打開 E:\registry\docker\registry\v2\blobs 文件路徑,刪除 sha256文件夾

再用方法1驗(yàn)證:

看上去似乎刪除成功,但是事實(shí)并不是,因?yàn)楫?dāng)我們再push一次的時(shí)候會(huì)發(fā)現(xiàn)本機(jī)私有鏡像庫中已經(jīng)存在了,由此可知?jiǎng)h除并沒有成功:

于是我想到最直接的方法就是去到容器中,查看具體的鏡像庫存放位置中,到底還存在鏡像不,結(jié)果發(fā)現(xiàn)了神奇的事情:

當(dāng)我通過 ls 命令cd 命令 一步步探索到 registry容器中的 /var/lib/registry/docker/registry/v2/repositories 路徑時(shí),發(fā)現(xiàn)了利用上面方法刪除的鏡像,依舊完好無損的存在于此處;也就是說刪除無效;

于是我又去看了 registry容器的配置文件:

看不出所以然,通過上網(wǎng)查閱資料得知:這是因?yàn)?strong>

registry容器的delete功能默認(rèn)是不啟動(dòng)的,

我覺得禁止刪除功能,應(yīng)該是為了安全因素的考慮吧。

但在好奇心的驅(qū)使下,我又去查閱資料,發(fā)現(xiàn)網(wǎng)上提供了一種修改配置文件的方法,可以啟動(dòng)刪除功能,如下:

這里我就不實(shí)踐了,網(wǎng)上還提供了另一種更安全的方法:

就是來到registry容器中的 /var/lib/registry/docker/registry/v2/repositories 路徑,直接刪除掉你想要?jiǎng)h除的鏡像即可:

或者更簡單的是

1.直接在cmd執(zhí)行以下命令:

docker exec <容器名> rm -rf /var/lib/registry/docker/registry/v2/repositories/<鏡像名>

通過 ls命令 查看,發(fā)現(xiàn)文件夾下已經(jīng)空,即刪除成功,可執(zhí)行 exit命令 退出容器:(疑問:不需要?jiǎng)h除blobs下的文件嗎?猜測這個(gè)blobs也許是臨時(shí)數(shù)據(jù))

2.然后還需要執(zhí)行垃圾回收操作:

docker exec registry bin/registry garbage-collect /etc/docker/registry/config.yml

結(jié)果反饋:

看到這個(gè)反饋中的3個(gè)0,總感覺這次可能沒有刪除成功。

然后我再push,發(fā)現(xiàn)還是存在,然而在多次實(shí)踐后,卻發(fā)現(xiàn)偶爾有一次是成功的:

所以我推測,是因?yàn)檫@個(gè)垃圾回收操作一般是不會(huì)立刻執(zhí)行的,可能是需要一段時(shí)間后才能保證真正清除掉緩存數(shù)據(jù),這個(gè)垃圾回收機(jī)制可能和blobs這個(gè)文件夾有關(guān)系。

驗(yàn)證:

于是我再刪除鏡像文件之后,等了10幾分鐘后,再去執(zhí)行這個(gè)垃圾回收操作,發(fā)現(xiàn)有了新的反饋:

感覺有希望了,然而當(dāng)我再次去push的時(shí)候,依舊是說已存在:

百般嘗試之后,我突然想到了傳說中那個(gè)能解決99%問題的方法:重啟。

于是我在執(zhí)行垃圾回收操作命令之后,執(zhí)行了 restart命令,重啟后再push,發(fā)現(xiàn)可以了,多次嘗試都可以成功刪除,至此終于解決了這個(gè)刪除鏡像的問題:

總結(jié):

  • 沒事就還是不要?jiǎng)h鏡像吧,太折騰了。
  • 刪除步驟為:

10.2.1:打開本機(jī) E:\registry\docker\registry\v2\repositories 文件路徑,刪除你想要?jiǎng)h除的鏡像文件。

10.2.2:cmd中,執(zhí)行垃圾回收操作命令:

docker exec b0533d3f7f8e bin/registry garbage-collect /etc/docker/registry/config.yml

10.2.3:重啟 registry容器

docker restart registry容器的id

10.2.4:再次push上傳本地docker庫鏡像

docker push 192.168.2.120:5000/minio

11.服務(wù)器間的鏡像倉庫地址訪問:

如:A服務(wù)器(本機(jī))地址:192.168.2.120:5000

B服務(wù)器地址:192.168.2.220:5000

要在 A 中訪問 B 鏡像倉庫地址,實(shí)現(xiàn)從B的倉庫中拉取鏡像:

11.1 首先要在本機(jī)A)的docker配置中,添加(B)鏡像倉庫地址:

11.2 然后 啟動(dòng)/重啟 本機(jī)(A)的docker desktop。

11.3 事先在B服務(wù)器上創(chuàng)建好B的鏡像倉庫,并創(chuàng)建以 B的ip:5000/ 開頭的鏡像,并push到b的鏡像倉庫地址中:

11.4 在本機(jī)(A)中打開瀏覽器查看 B 的鏡像庫中的信息,可以看到B庫中只有一個(gè)剛剛push的minio鏡像,同時(shí)說明訪問成功:

11.5 在本機(jī)(A)中拉取 B庫鏡像,輸入:

docker pull 

下載中:

下載完成:

注意:這里是下載到本機(jī)(A)的docker倉庫,如果需要存放在本機(jī)私有鏡像倉庫,就需要和上面相同的方法,創(chuàng)建新的鏡像并push即可,如下:

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 如何修改Docker鏡像的映射端口號(hào)

    如何修改Docker鏡像的映射端口號(hào)

    這篇文章主要介紹了如何修改Docker鏡像的映射端口號(hào)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • Docker Compose安裝本地maven方式

    Docker Compose安裝本地maven方式

    本文介紹了如何使用Docker Compose安裝Maven,并提供了腳本和配置路徑,通過運(yùn)行Docker Compose,可以查看安裝結(jié)果,進(jìn)入容器后,可以查看Maven版本
    2024-12-12
  • docker容器源碼部署httpd用存儲(chǔ)卷部署網(wǎng)站(推薦)

    docker容器源碼部署httpd用存儲(chǔ)卷部署網(wǎng)站(推薦)

    這篇文章主要介紹了docker容器源碼部署httpd用存儲(chǔ)卷部署網(wǎng)站,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12
  • 物理機(jī)與啟動(dòng)的Docker容器間的目錄映射方式

    物理機(jī)與啟動(dòng)的Docker容器間的目錄映射方式

    這篇文章主要介紹了物理機(jī)與啟動(dòng)的Docker容器間的目錄映射方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • docker?compose重啟單個(gè)服務(wù)和所有服務(wù)的方法

    docker?compose重啟單個(gè)服務(wù)和所有服務(wù)的方法

    Docker Compose 是一個(gè)用于定義和運(yùn)行多容器 Docker 應(yīng)用程序的工具,下面這篇文章主要介紹了docker?compose重啟單個(gè)服務(wù)和所有服務(wù)的方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-07-07
  • docker自建GitLab倉庫的實(shí)現(xiàn)

    docker自建GitLab倉庫的實(shí)現(xiàn)

    Harbor是一個(gè)用于存儲(chǔ)和分發(fā)Docker鏡像的企業(yè)級(jí)Registry服務(wù)器,本文主要介紹了docker自建GitLab倉庫的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-07-07
  • Docker容器化Node.js應(yīng)用操作教程

    Docker容器化Node.js應(yīng)用操作教程

    本文介紹了如何使用Docker容器化一個(gè)簡單的Node.js應(yīng)用,從編寫代碼到運(yùn)行容器,詳細(xì)講解了Docker的核心操作,包括構(gòu)建鏡像和運(yùn)行容器,感興趣的朋友跟隨小編一起看看吧
    2025-12-12
  • 第一次構(gòu)建、運(yùn)行、發(fā)布、獲取docker鏡像的步驟詳解

    第一次構(gòu)建、運(yùn)行、發(fā)布、獲取docker鏡像的步驟詳解

    今天小編就為大家分享一篇關(guān)于第一次構(gòu)建、運(yùn)行、發(fā)布、獲取docker鏡像的步驟詳解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • docker logs命令查看容器日志的實(shí)現(xiàn)示例

    docker logs命令查看容器日志的實(shí)現(xiàn)示例

    本文主要介紹了docker logs命令查看容器日志的實(shí)現(xiàn)示例,包括查看最新日志、最后N行日志、實(shí)時(shí)跟蹤日志、特定時(shí)間段的日志、顯示時(shí)間戳及結(jié)合其他工具過濾日志,感興趣的可以了解一下
    2025-12-12
  • Docker?Compose與Docker鏡像倉庫詳解

    Docker?Compose與Docker鏡像倉庫詳解

    Docker?Compose可以基于Compose文件幫我們快速的部署分布式應(yīng)用,而無需手動(dòng)一個(gè)個(gè)創(chuàng)建和運(yùn)行容器,這篇文章主要介紹了Docker?Compose與Docker鏡像倉庫,需要的朋友可以參考下
    2023-03-03

最新評(píng)論

涿州市| 交口县| 泰顺县| 北川| 柳林县| 湘西| 江城| 潞西市| 湘西| 兴城市| 犍为县| 安乡县| 溧阳市| 河津市| 宜黄县| 福贡县| 双江| 溧水县| 武乡县| 邵阳县| 成武县| 山阴县| 甘德县| 昆山市| 都安| 河津市| 会泽县| 保亭| 曲麻莱县| 崇义县| 大冶市| 神农架林区| 安阳县| 琼海市| 龙陵县| 许昌县| 浙江省| 天水市| 横山县| 鲁甸县| 阿瓦提县|