溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Docker的鏡像倉(cāng)庫(kù)怎么創(chuàng)建

發(fā)布時(shí)間:2022-05-24 17:18:52 來(lái)源:億速云 閱讀:419 作者:iii 欄目:開(kāi)發(fā)技術(shù)

本篇內(nèi)容介紹了“Docker的鏡像倉(cāng)庫(kù)怎么創(chuàng)建”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

一.  鏡像倉(cāng)庫(kù)

Registry是Docker公司的一項(xiàng)創(chuàng)新,它提供了存放鏡像的倉(cāng)庫(kù)服務(wù)。在構(gòu)建好鏡像后,我們通常會(huì)將鏡像上傳到Registry服務(wù)器上進(jìn)行保存。這樣可以保證不會(huì)因本機(jī)故障而導(dǎo)致鏡像丟失,同時(shí),其他機(jī)器也能很方便地通過(guò)網(wǎng)絡(luò)方式下載。

Docker Hub即為Docker官方的Registry服務(wù)器 。我們總是習(xí)慣將Registry稱(chēng)為倉(cāng)庫(kù),但事實(shí)上兩者并不完全等同。它們之間的關(guān)系如下圖所示,在Registry中可以有多個(gè)倉(cāng)庫(kù),每個(gè)倉(cāng)庫(kù)存儲(chǔ)同名的鏡像,而鏡像之間通過(guò)Tag進(jìn)行版本區(qū)分。

Docker的鏡像倉(cāng)庫(kù)怎么創(chuàng)建

Docker客戶端默認(rèn)使用Docker Hub拉取鏡像,在Docker Hub上有著數(shù)量眾多的倉(cāng)庫(kù),其中就有Docker官方提供的公共倉(cāng)庫(kù)。在官方倉(cāng)庫(kù)中存儲(chǔ)了海量的應(yīng)用鏡像,這些鏡像都是經(jīng)過(guò)官方的篩選和審查,具有較高的安全性,應(yīng)該作為生產(chǎn)使用的首選項(xiàng)。Docker Hub具有與GitHub相同的概念,Stars代表著鏡像受歡迎程度,通常優(yōu)先下載Stars數(shù)量多的鏡像。

Docker的鏡像倉(cāng)庫(kù)怎么創(chuàng)建

除了使用官方倉(cāng)庫(kù),我們也可以在Docker Hub上面創(chuàng)建自己的個(gè)人倉(cāng)庫(kù),用于存放定制化的鏡像。

操作方法如下:

1. 賬號(hào)注冊(cè)

新用戶需要使用自己的郵箱地址注冊(cè)賬號(hào),點(diǎn)擊Register按鍵后開(kāi)始注冊(cè)。

Docker的鏡像倉(cāng)庫(kù)怎么創(chuàng)建

2. 創(chuàng)建倉(cāng)庫(kù) 

使用賬號(hào)登錄系統(tǒng)后,我們就可以來(lái)創(chuàng)建自己的倉(cāng)庫(kù)。倉(cāng)庫(kù)分為兩類(lèi),一類(lèi)為公共倉(cāng)庫(kù),一類(lèi)為私有倉(cāng)庫(kù) ,公共倉(cāng)庫(kù)屬于開(kāi)放性倉(cāng)庫(kù),用戶不需要任何驗(yàn)證即可下載鏡像,而私有倉(cāng)庫(kù)需要具有相關(guān)權(quán)限的賬號(hào)才能下載。免費(fèi)用戶目前在Docker Hub只能創(chuàng)建一個(gè)私有倉(cāng)庫(kù),公共倉(cāng)庫(kù)則沒(méi)有限制。

選擇“Repositories“菜單,然后點(diǎn)擊”Create Repository”創(chuàng)建用戶,此處創(chuàng)建一個(gè)公共倉(cāng)庫(kù),名稱(chēng)為myapp,前面部分為我們的在Dcoker Hub的專(zhuān)屬名稱(chēng)空間。

Docker的鏡像倉(cāng)庫(kù)怎么創(chuàng)建

點(diǎn)擊“Create” 創(chuàng)建完成后,我們可以來(lái)試著上傳鏡像了。

Docker的鏡像倉(cāng)庫(kù)怎么創(chuàng)建

二. 上傳鏡像

在前面構(gòu)建鏡像時(shí),我們配置了鏡像名稱(chēng),如:myapp:1.0。如果只在本機(jī)使用的話,對(duì)于名稱(chēng)格式并沒(méi)有特別要求。但如果要將鏡像上傳或從倉(cāng)庫(kù)下載的話,那么必須使用如下的名稱(chēng)格式 :

Registry Address/Namespace/Repository:Tag
  • Registry Address:指向Registry服務(wù)器的地址 ,當(dāng)鏡像未設(shè)置該項(xiàng)時(shí),則默認(rèn)使用Docker Hub的地址。

  • Namespace:Registry中唯一的空間地址,可以用于區(qū)分不同用戶或項(xiàng)目。默認(rèn)使用Docker官方的空間地址。

  • Repository:倉(cāng)庫(kù)名稱(chēng),同一個(gè)應(yīng)用的鏡像倉(cāng)庫(kù)名相同,通過(guò)不同的tag來(lái)標(biāo)記。

  • Tag:用于標(biāo)記不同的鏡像版本。

現(xiàn)在,我們按照上面的格式來(lái)修改前面創(chuàng)建的鏡像myapp:1.0,命令格式為:docker [image] tag +<Source_image:Tag> + <Target_image:Tag>。

$ docker tag myapp:1.0 alex990/myapp:1.0

注釋?zhuān)?/strong>由于Docker Hub地址為默認(rèn),故此處不需要增加,如果是其他第三方Registry,則需要在前面加上對(duì)應(yīng)的地址。

docker tag命令并不會(huì)對(duì)原有鏡像做修改,只會(huì)將新的tag 映射到該鏡像。我們可以看到,新鏡像的IMAGE ID與原鏡像的相同,證明都是屬于同一個(gè)鏡像文件。

$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
alex990/myapp 1.0 6c1160b01988 20 hours ago 43.2MB
myapp 1.0 6c1160b01988 20 hours ago 43.2MB

運(yùn)行docker login,并按提示輸入Docker Hub注冊(cè)的賬號(hào)信息,完成驗(yàn)證。

$ docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: alex990
Password:
Login Succeeded

然后,我們通過(guò)docker [image] push 命令上傳鏡像到倉(cāng)庫(kù),如下:

$ docker push alex990/myapp:1.0
The push refers to repository [docker.io/alex990/myapp]
7a965a3a67a7: Mounted from linsr2018/myapp
f604d2d04ecc: Mounted from linsr2018/myapp
9b999b9e5af8: Mounted from linsr2018/myapp
675233026df0: Mounted from linsr2018/myapp
ddb2d7cdfff3: Mounted from linsr2018/myapp
1965cfbef2ab: Mounted from linsr2018/myapp
8d3ac3489996: Mounted from linsr2018/myapp
1.0: digest: sha256:04f75f3422e55affbdf7f14f0a2e5784d09d7774d9f7f695b412b065cdb484c3 size: 1782

上傳完成后,登錄Docker Hub可看到鏡像已存在。現(xiàn)在,我們可以到其他機(jī)器上進(jìn)行下載使用了。

Docker的鏡像倉(cāng)庫(kù)怎么創(chuàng)建

“Docker的鏡像倉(cāng)庫(kù)怎么創(chuàng)建”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI