docker鏡像管理命令詳解
一、國(guó)內(nèi)Docker鏡像倉(cāng)庫(kù)
由于大家都知道的原因,從國(guó)外的docker 倉(cāng)庫(kù)中pull鏡像的下載速度實(shí)際上是很慢的。國(guó)內(nèi)的一些一線(xiàn)廠(chǎng)商以及docker官方都在國(guó)內(nèi)免費(fèi)提供了一些docker鏡像倉(cāng)庫(kù),使用國(guó)內(nèi)的鏡像倉(cāng)庫(kù)下載速度會(huì)有很大的提升。例如:
- Docker 官方提供的中國(guó) registry mirror
- 阿里云加速器
- DaoCloud 加速器
我們以Docker官方提供的中國(guó) registry mirror為例,來(lái)講解國(guó)內(nèi)鏡像倉(cāng)庫(kù)源的配置方式。將 /etc/docker/daemon.json
文件內(nèi)容修改為如下內(nèi)容,如果該文件不存在就新建一個(gè)
{ "registry-mirrors":["https://registry.docker-cn.com"] }
配置完成之后,重啟docker服務(wù)
sudo systemctl restart docker
再去下載pull鏡像,會(huì)發(fā)現(xiàn)比以前快了很多。就這么簡(jiǎn)單!
三、搜索鏡像
Docker Hub 上有很多的官方鏡像以及第三方上傳的高質(zhì)量鏡像,下面就為大家介紹如何搜索并獲取這些鏡像。
- 第一種方式就是在Dcoker hub上直接搜索鏡像,比如我搜索redis鏡像,下方出現(xiàn)綠色盾牌標(biāo)志的就是redis官方提供的鏡像,安全性穩(wěn)定性都是有保證的。
第二種方式可以使用
docker search
來(lái)搜索鏡像,
我們也可以使用 命令來(lái)搜索鏡像。比如我們需要一個(gè)tomcat的鏡像來(lái)作為我們的web服務(wù)。我們可以通過(guò) docker search 命令搜索tomcat來(lái)尋找適合我們的鏡像。
docker search redis
OFFICIAL字段值為OK的那一條記錄為官方的鏡像。
四、拉取鏡像
從 Docker 鏡像倉(cāng)庫(kù)獲取鏡像的命令是 docker pull其命令格式為:
docker pull [選項(xiàng)] [Docker Registey 地址[:端口號(hào)]/] 鏡像名[:標(biāo)簽]
具體的選項(xiàng)可以通過(guò) docker pull --help 命令看到,這里我們說(shuō)一下鏡像名稱(chēng)的格式。
<域名/IP>[:端口號(hào)] <用戶(hù)名>/<軟件名>
示例:通過(guò) docker pull獲取redis最新版本的鏡像
docker pull redis:latest
等同于
docker pull redis
五、列出鏡像
要想列出已經(jīng)下載下來(lái)的鏡像,可以使用 docker image ls 命令。
docker images //等同于docker image ls
- REPOSITORY:倉(cāng)庫(kù)及鏡像名稱(chēng)
- TAG:標(biāo)簽及版本號(hào)
- IMAGE ID:鏡像ID,鏡像的唯一標(biāo)識(shí)
- CREATED:該鏡像的構(gòu)建時(shí)間
- SIZE: 該鏡像文件的大小
六、虛懸鏡像
在鏡像列表中,可能會(huì)存在一種特殊的鏡像,該鏡像既沒(méi)有倉(cāng)庫(kù)名/鏡像名稱(chēng),也沒(méi)有標(biāo)簽/版本號(hào),這兩個(gè)位置均顯示 <none>
,這種鏡像通常被稱(chēng)為 虛懸鏡像 ,如下入所示。
虛懸鏡像產(chǎn)生的原因是什么?
其實(shí)虛懸鏡像最開(kāi)始pull下載的時(shí)候是有鏡像名稱(chēng)和標(biāo)簽版本號(hào)名稱(chēng)的,比如redis官方發(fā)布了一個(gè)docker鏡像6.0版本,過(guò)了一段時(shí)間發(fā)現(xiàn)6.0版本的鏡像有可能存在安全問(wèn)題,所以重新構(gòu)建了一個(gè)6.0版本的鏡像。
鏡像名稱(chēng)redis和6.0的TAG都被新發(fā)布的鏡像占用了,舊版本的鏡像就丟失了鏡像名稱(chēng)和標(biāo)簽,變成了虛懸鏡像。
一般來(lái)說(shuō),虛懸鏡像已經(jīng)失去了存在的價(jià)值,是可以隨意刪除的,使用下面的命令刪除:
docker image prune
七、刪除本地鏡像
下面的兩種語(yǔ)法都可以完成鏡像刪除的操作:
docker rmi [選項(xiàng)] <鏡像1> [<鏡像2>.....] docker image rm <鏡像1> [<鏡像2>.....]
上文語(yǔ)法中可以使用 鏡像ID、鏡像名作為鏡像的唯一標(biāo)識(shí)用來(lái)刪除鏡像。常用的[選項(xiàng)]是 -f
表示強(qiáng)制刪除,有的時(shí)候同一個(gè)鏡像上傳到多個(gè)倉(cāng)庫(kù),此時(shí)鏡像ID就不再是唯一標(biāo)識(shí),需要使用 -f
強(qiáng)制刪除才能刪除鏡像(具有同一個(gè)鏡像ID的所有本地鏡像全部刪除)。
需要注意的是:刪除鏡像之前必須確認(rèn)被刪除的鏡像,沒(méi)有被任何容器使用,否則無(wú)法刪除。
如下所示,刪除hello-world鏡像的響應(yīng)結(jié)果。
# docker rmi hello-world Untagged: hello-world:latest Untagged: hello-world@sha256:bfea6278a0a267fad2634554f4f0c6f31981eea41c553fdf5a83e95a41d40c38 Deleted: sha256:feb5d9fea6a5e9606aa995e879d862b825965ba48de054caab5ef356dc6b3412 Deleted: sha256:e07ee1baac5fae6a26f30cabfe54a36d3402f96afda318fe0a96cec4ca393359
八、鏡像的導(dǎo)入導(dǎo)出
用 save 子命令將本地倉(cāng)庫(kù)的鏡像保存為當(dāng)前目錄下的tar文件。
docker save -o <自定義包名>.tar <鏡像名稱(chēng)>
如下面的命令將 hello-world鏡像導(dǎo)出為一個(gè)helloworld.tar存放在當(dāng)前目錄
docker save -o helloworld.tar hello-world
我們可以在另一臺(tái)服務(wù)器上,將hello-world鏡像導(dǎo)入,導(dǎo)入方法如下:
導(dǎo)入方式一(不輸出詳細(xì)信息):
# docker load -i helloworld.tar
導(dǎo)入方式二(輸出詳細(xì)信息):
# docker load < helloworld.tar
鏡像導(dǎo)出導(dǎo)入功能可以用于鏡像備份,在沒(méi)有鏡像倉(cāng)庫(kù)的公司中也可以使用這種tar包的方式傳遞鏡像文件。
到此這篇關(guān)于docker鏡像管理命令的文章就介紹到這了,更多相關(guān)docker鏡像管理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- IDEA遠(yuǎn)程管理docker鏡像及容器服務(wù)的實(shí)現(xiàn)
- Docker鏡像管理常用操作代碼示例
- .NETCore Docker實(shí)現(xiàn)容器化與私有鏡像倉(cāng)庫(kù)管理
- Docker私有倉(cāng)庫(kù)管理和刪除本地倉(cāng)庫(kù)中的鏡像
- Docker容器生命周期 | kill和 stop的區(qū)別與聯(lián)系 | docker pause/ unpause
- Docker 容器生命周期 架構(gòu) 以及和VM之間的差異詳解
- Docker Runc容器生命周期詳細(xì)介紹
- docker生命周期管理和鏡像管理命令詳解
相關(guān)文章
基于alpine用dockerfile創(chuàng)建的爬蟲(chóng)Scrapy鏡像的實(shí)現(xiàn)
這篇文章主要介紹了基于alpine用dockerfile創(chuàng)建的爬蟲(chóng)Scrapy鏡像的實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-12-12Docker容器網(wǎng)絡(luò)端口配置過(guò)程詳解
這篇文章主要介紹了Docker容器網(wǎng)絡(luò)端口配置過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10基于Docker的MySQL主從復(fù)制環(huán)境搭建的實(shí)現(xiàn)步驟
這篇文章主要介紹了基于Docker的MySQL主從復(fù)制環(huán)境搭建的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01如何運(yùn)用docker配合python開(kāi)發(fā)環(huán)境實(shí)例
本篇文章主要介紹了如何運(yùn)用docker配合python開(kāi)發(fā)實(shí)例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07使用Dockerfile部署nodejs服務(wù)的方法步驟
這篇文章主要介紹了使用Dockerfile部署nodejs服務(wù)的方法步驟,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-01-01