欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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一鍵部署springcloud項(xiàng)目的方法

    Docker一鍵部署springcloud項(xiàng)目的方法

    本文主要介紹了Docker一鍵部署springcloud項(xiàng)目的方法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • docker安裝并持久化postgresql數(shù)據(jù)庫的操作步驟

    docker安裝并持久化postgresql數(shù)據(jù)庫的操作步驟

    這篇文章主要介紹了docker安裝并持久化postgresql數(shù)據(jù)庫的操作步驟,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • 遷移Docker中MySQL容器的全過程

    遷移Docker中MySQL容器的全過程

    在這篇文章中,我們將介紹如何將在 Docker 中運(yùn)行的 MySQL 容器從一臺(tái)機(jī)器(我們稱之為A機(jī)器)遷移到另一臺(tái)機(jī)器(我們稱之為B機(jī)器),這個(gè)過程主要包括五個(gè)步驟:提交容器為鏡像,保存鏡像為 tar 包等,文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下
    2023-12-12
  • docker網(wǎng)段沖突如何解決

    docker網(wǎng)段沖突如何解決

    這篇文章主要為大家介紹了docker網(wǎng)段沖突的解決方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪<BR>
    2023-05-05
  • Docker 容器操作退出后進(jìn)入解決辦法

    Docker 容器操作退出后進(jìn)入解決辦法

    這篇文章主要介紹了Docker 容器操作退出后進(jìn)入解決辦法的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • Docker部署Java應(yīng)用程序的實(shí)現(xiàn)步驟

    Docker部署Java應(yīng)用程序的實(shí)現(xiàn)步驟

    本文主要介紹了Docker部署Java應(yīng)用程序的實(shí)現(xiàn)步驟,通過將Java應(yīng)用程序打包成一個(gè)Docker鏡像,可以實(shí)現(xiàn)快速部署、資源隔離和靈活擴(kuò)展,感興趣的可以了解一下
    2024-03-03
  • Docker基礎(chǔ)命令詳解

    Docker基礎(chǔ)命令詳解

    Docker 是一個(gè)開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的 Linux 機(jī)器上。本文給大家分享docker基礎(chǔ)命令,感興趣的朋友一起看看吧
    2016-10-10
  • docker for windonws之Windows 10 家庭中文版安裝clickhouse 22.3版本及配置過程

    docker for windonws之Windows 10 家庭中文版安裝cl

    這篇文章主要介紹了docker for windonws之Windows 10 家庭中文版安裝clickhouse 22.3版本及配置,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • 3分鐘帶你學(xué)會(huì)docker搭建帕魯服務(wù)器

    3分鐘帶你學(xué)會(huì)docker搭建帕魯服務(wù)器

    幻獸帕魯已經(jīng)正式開服,目前在線人數(shù)已經(jīng)超過7W+,很多玩家想自己創(chuàng)建服務(wù)器和朋友一起聯(lián)機(jī)游玩,本文主要介紹了3分鐘帶你學(xué)會(huì)docker搭建帕魯服務(wù)器,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • docker利用單個(gè)鏡像映射到多個(gè)端口操作

    docker利用單個(gè)鏡像映射到多個(gè)端口操作

    這篇文章主要介紹了docker利用單個(gè)鏡像映射到多個(gè)端口操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11

最新評(píng)論