Docker中的鏡像詳細(xì)介紹
Docker中的鏡像詳細(xì)介紹
Docker鏡像可以理解為運(yùn)行在Docker容器中的一個(gè)組件,本節(jié)將會(huì)帶領(lǐng)大家學(xué)會(huì)Docker鏡像的下載、搜索、查看、添加刪除等一系列操作。Docker在運(yùn)行容器前需要本地存在對(duì)應(yīng)的鏡像,如果鏡像不存在本地,Docker會(huì)嘗試從默認(rèn)的遠(yuǎn)程倉(cāng)庫(kù)Docker Hub下載。
一、獲取鏡像:
1、Docker從網(wǎng)絡(luò)上下載鏡像的格式為:
docker pull [NAME]:[TAG]
其中TAG即為標(biāo)簽,如果不指定標(biāo)簽的話,那么默認(rèn)會(huì)下載最新版本的鏡像。
比如從Docker Hub中下載最新的ubuntu操作系統(tǒng):
docker pull ubuntu
則docker會(huì)從Docker Hub中下載最新版本的ubuntu。
2、指定倉(cāng)庫(kù)下載鏡像:
如果覺得在Docker Hub下載鏡像太慢的話,可以在其它倉(cāng)庫(kù)下載鏡像,只需要在下載的鏡像前加入指定倉(cāng)庫(kù)的url即可
docker pull [REPOSITORY]/ubuntu
3、使用鏡像:
因?yàn)橐呀?jīng)下載鏡像到本地了,所以可以隨時(shí)使用,下面是使用該ubuntu鏡像來運(yùn)行ubuntu中的bash應(yīng)用:
docker run -t -i ubuntu /bin/bash
輸入exit即可退出bash應(yīng)用。
二、查看鏡像:
1、命令為:
docker images
使用上述命令可以看出本地存在的所有鏡像文件,其中,
REPOSITORY代表來自哪個(gè)倉(cāng)庫(kù),比如從Docker Hub下載ubuntu,那么直接顯示ubuntu,如果是從其它倉(cāng)庫(kù)中下載的ubuntu,那么會(huì)顯示
REPOSITORY/ubuntu
TAG代表鏡像的標(biāo)簽
IMAGE ID代表鏡像的唯一ID
CREATED代表創(chuàng)建時(shí)間
VIRTUAL SIZE代表鏡像的大小
2、為鏡像設(shè)置標(biāo)簽
為了方便在工作中使用鏡像,可以使用docker tag命令為本地鏡像打標(biāo)簽,標(biāo)簽可以看做是一個(gè)別名,一個(gè)鏡像可以有多個(gè)標(biāo)簽,但只能有一個(gè)ID
docker tag [NAME]:[Old TAG] [NAME]:[New TAG]
會(huì)將本地的鏡像上增加一個(gè)新的標(biāo)簽,即New TAG,比如:
docker tag ubuntu:latest ubuntu:happyheng
此將本地的標(biāo)簽為latest的ubuntu打了一個(gè)新的標(biāo)簽,為happyheng。
當(dāng)然,打了標(biāo)簽后,本地的鏡像不會(huì)有任何改變,只是有了一個(gè)新的標(biāo)簽而已。
3、查看鏡像的詳細(xì)信息:
docker inspect [IMAGE ID]
此可以根據(jù)鏡像的id查看此鏡像的詳細(xì)信息
三、搜索鏡像
docker search [NAME]
其會(huì)返回鏡像的關(guān)鍵字,包括鏡像名字、描述、星級(jí)、是否官方創(chuàng)建、是否自動(dòng)創(chuàng)建等。
四、刪除鏡像
1、使用鏡像的標(biāo)簽來刪除鏡像:
docker rmi [NAME]:[TAG]
注意使用標(biāo)簽來刪除時(shí),如果一個(gè)鏡像有兩個(gè)標(biāo)簽,那么只刪除一個(gè)是不會(huì)刪除鏡像的,但如果只剩下一個(gè)標(biāo)簽,那么刪除此標(biāo)簽會(huì)將鏡像也刪除
2、使用鏡像ID來刪除鏡像:
docker rmi [ID]
注意如果有容器在使用鏡像,那么是不能刪除成功的。
五、創(chuàng)建鏡像:
創(chuàng)建鏡像的方法有三種,分別為:
基于已有鏡像的容器創(chuàng)建
基于本地模板導(dǎo)入
基于Dockerfile創(chuàng)建
1、基于已有鏡像的容器創(chuàng)建:
該方法主要是使用docker commit [OPTIONS] [Container ID] [NAME]:[TAG]
注意CONTAINER ID是容器的id,而不是鏡像的id,因?yàn)殓R像是在容器中運(yùn)行中發(fā)生改變,所以要為容器的id。
比如
docker run -ti ubuntu:latest /bin/bash root@c8ee80e08468:/# touch test root@c8ee80e08468:/# exit
注意此時(shí)容器的id為c8ee80e08468,所以commit提交鏡像時(shí),命令為:
docker commit -m "add a new file" -a "newbee" c8ee80e08468 ubuntu:add
此為將修改的鏡像提交到本地倉(cāng)庫(kù)中,其中提交的tag為ubuntu:add
其中:
-a : 作者信息
-m : 提交的信息
-p : 提交時(shí)暫停容器運(yùn)行
可以發(fā)現(xiàn),這種方式與Git很相似。
六、存出和載入鏡像:
可以使用docker save和docker load命令來存儲(chǔ)和載入鏡像。
1、存出鏡像:
docker save -o xxx.tar [NAME]:[TAG]
比如我想把鏡像tag為ubuntu:add的鏡像保存為tar包,那么就可以使用
docker save -o ubuntu_add.tar ubuntu:add
其中,當(dāng)前終端在哪個(gè)目錄,tar就保存到哪
2、載入鏡像:
docker load --input ubuntu_add.tar
可以將上述目錄的tar鏡像載入進(jìn)來。
七、上傳鏡像
可以使用docker push命令將鏡像上傳至倉(cāng)庫(kù),默認(rèn)上傳到Docker Hub官方倉(cāng)庫(kù),當(dāng)然需要登錄:
docker push [NAME]:[TAG]
即可將本地的鏡像上傳上去
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
使用docker部署django技術(shù)棧項(xiàng)目的方法步驟
這篇文章主要介紹了使用docker部署django技術(shù)棧項(xiàng)目的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09docker安裝redis掛載容器卷同時(shí)開啟持久化
本文主要介紹了docker安裝redis掛載容器卷同時(shí)開啟持久化,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06docker如何部署帶有界面的registry倉(cāng)庫(kù)
這篇文章主要介紹了docker如何部署帶有界面的registry倉(cāng)庫(kù)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02Docker數(shù)據(jù)存儲(chǔ)之Bind mounts詳解
今天小編就為大家分享一篇關(guān)于Docker數(shù)據(jù)存儲(chǔ)之Bind mounts詳解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-02-02