Docker鏡像之命令清單詳解
1. docker images
功能
查看所有鏡像
語(yǔ)法
docker images [option] [repository[:tag]]
常見(jiàn)參數(shù)
--a:列出所有鏡像,包括中間層鏡像(默認(rèn)不顯示中間層)--digests:限制鏡像的 摘要信息-q: 只顯示鏡像ID--no-trunc:顯示完整鏡像信息,不截?cái)?/li>
效果演示
docker images nginx

2. docker tag
功能
給某個(gè)鏡像打標(biāo)簽,確??梢哉_推送到倉(cāng)庫(kù)
鏡像推送到倉(cāng)庫(kù)需要在鏡像名字前面添加倉(cāng)庫(kù)的地址:

地址添加方式使用的就是docker tag
用法
- 登錄賬號(hào)
docker login hyy_registry.com
- 打標(biāo)簽
docker tag myweb:v1.6 hyy_registry.com/myweb:v1.6
- 推送到遠(yuǎn)程倉(cāng)庫(kù)
docker push hyy_registry.com/myweb:v1.6
注意點(diǎn)
打完標(biāo)簽后,該容器會(huì)有兩個(gè)名字,分別是hyy_registry.com/myweb:v1.6和myweb:v1.6,但是它們的imgeID是一樣的,并且使用同一個(gè)物理空間

3. docker pull
從遠(yuǎn)程倉(cāng)庫(kù)拉取指定對(duì)象
4. docker rmi
功能&語(yǔ)法
刪除鏡像
docker rmi [options] [鏡像ID/鏡像名字]
常見(jiàn)參數(shù)
-f強(qiáng)制刪除--no-prune: 不移除中間鏡像(防止誤刪共享層,快速重新構(gòu)建鏡像)
5. docker save
功能&語(yǔ)法
用于把指定鏡像,歸檔為tar壓縮文件
docker save -o [文件名稱(chēng)] [鏡像名:標(biāo)簽]

6. docker load
功能&語(yǔ)法
把docker save的壓縮文件加載為鏡像
docker load [options] [鏡像tar文件]
選項(xiàng)
-i用于指定需要加載的文件(用的最多)-q靜默輸出,load命令運(yùn)行時(shí),會(huì)顯示任務(wù)過(guò)程,如果是編寫(xiě)自動(dòng)化腳本可以用-q
演示

7. docker inspect
功能
顯示容器或者鏡像的信息
docker inspect [容器ID/鏡像ID]
8.docker history
功能
查看指定鏡像的構(gòu)建歷史信息,用于給鏡像“瘦身”
docker history [options] 鏡像名字
選項(xiàng)
--human人類(lèi)易于閱讀的方式呈現(xiàn)--no-trunc不截?cái)嘈畔?/li>-q只顯示鏡像ID
9. docker import
功能
docker import是把tar文件轉(zhuǎn)為鏡像。但是它和docker save/load本質(zhì)上是不同的,docker import要和docker export一起用。
docker export可以把一個(gè)正在運(yùn)行(或者created)的容器打包為tar文件,然后通過(guò)docker import加載為一個(gè)全新的鏡像。
save和export的區(qū)別:
相比于save,export是一種快照導(dǎo)入的方式,他會(huì)丟棄之前所有的構(gòu)建信息以及元數(shù)據(jù),只保留文件狀態(tài),因此體積較小,一般用于基礎(chǔ)鏡像構(gòu)建;
而save命令保存了該鏡像的所有層級(jí),一般用于文件備份;
docker import [options] export生成的tar文件 新的鏡像名字
選項(xiàng)
-c用于定義Dockerfile指令-m添加文字說(shuō)明
演示
docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8035b11487dd nginx:1.23.3 "/docker-entrypoint.…" 26 hours ago Up 26 hours 0.0.0.0:80->80/tcp, [::]:80->80/tcp my_nginx docker export -o my_nginx_1_11.tar 8035b11487dd ls -lh | grep 1_11 -rw------- 1 root root 138M Jan 11 16:23 my_nginx_1_11.tar docker import -c 'CMD ["nginx","-g","daemon off;"]' \ -m '這個(gè)nginx的主頁(yè)我修改過(guò)' my_nginx_1_11.tar import_image:v1 sha256:9aa858f5e9dcc5456df374f1e69e9e313c5fc154af0b4323e24f02e08daee63c docker images REPOSITORY TAG IMAGE ID CREATED SIZE import_image v1 9aa858f5e9dc 6 minutes ago 140MB
10. docker image prune
功能
批量刪除鏡像
docker image prune [options]
選項(xiàng)
-adocker image prune默認(rèn)只會(huì)刪除懸空鏡像,如果添加-a那么會(huì)刪除所有未被使用的鏡像-f強(qiáng)制刪除鏡像,并且跳過(guò)【y/n】交互提示,一般CI/CD用的多
什么是未被使用的鏡像?
當(dāng)前的所有容器中,沒(méi)有一個(gè)是由該鏡像創(chuàng)建的,那么這個(gè)鏡像就是未被使用的
11. docker build
功能
根據(jù)DockerFile文件中的指令,構(gòu)建鏡像
docoker build [options] 構(gòu)建上下文路徑
選項(xiàng)
-t: 給鏡像打標(biāo)簽,例如docker build -t myweb:v1.0 .-f: 指定DocerFile文件,一般默認(rèn)搜索工作目錄名為Dockerfile的文件--no-cache: 告訴docker引擎,不要使用緩存構(gòu)建,使用最新的資源,例如:防止update層沒(méi)有更新最新系統(tǒng)-q:成功后只輸出鏡像ID--network:設(shè)置構(gòu)建過(guò)程中,容器的網(wǎng)絡(luò)類(lèi)型(default、host、none…)--build-arg:動(dòng)態(tài)設(shè)置構(gòu)建參數(shù),例如Dockerfile中設(shè)置了ARG version =1.1我們可以使用--build-arg VERSION=1.2進(jìn)行動(dòng)態(tài)修改
構(gòu)建上下文 . 的含義:
- 很多人認(rèn)為
.的含義是告訴docker引擎構(gòu)建上下文為當(dāng)前目錄,這個(gè)理解其實(shí)是片面的。 - 實(shí)際上
.的含義是:告訴docker客戶端,把當(dāng)前目錄的所有文件打包,發(fā)給docker引擎進(jìn)行處理;
為什么要強(qiáng)調(diào)這點(diǎn)呢?
因?yàn)槿绻?dāng)前目錄存在大量無(wú)關(guān)數(shù)據(jù),那么整體構(gòu)建時(shí)間、docker程序、磁盤(pán)IO都會(huì)爆炸!
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Docker私有倉(cāng)庫(kù)管理和刪除本地倉(cāng)庫(kù)中的鏡像
這篇文章主要介紹了Docker私有倉(cāng)庫(kù)管理和刪除本地倉(cāng)庫(kù)中的鏡像,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-01-01
解決docker容器設(shè)置DNS不生效的問(wèn)題
文章主要介紹了如何在Docker中設(shè)置DNS,并通過(guò)兩種方式(`docker run`和`docker-compose.yml`)進(jìn)行了詳細(xì)說(shuō)明,雖然`docker run`方式可以成功設(shè)置DNS,但`docker-compose.yml`方式在某些情況下會(huì)導(dǎo)致DNS配置無(wú)效,因?yàn)槿萜鞯腵/etc/resolv.conf`文件2025-01-01
如何使用docker?compose部署dify(大模型開(kāi)發(fā)使用平臺(tái))
Dify是一款生成式AI應(yīng)用中間件,面向有私有部署與數(shù)據(jù)合規(guī)需求的企業(yè)用戶,推動(dòng)企業(yè)向AI+時(shí)代轉(zhuǎn)型,這篇文章主要介紹了使用docker compose部署dify(大模型開(kāi)發(fā)使用平臺(tái)),需要的朋友可以參考下2025-05-05
解決Docker安裝錯(cuò)誤failure:repodata/repomd.xml from docke
在使用yum命令安裝docker或其他工具時(shí)可能會(huì)遇到failure_repodata_repomd.xmlfromdocker-ce-stable_[Errno256]Nomoremirrorstotry的錯(cuò)誤,原因可能是yum源配置問(wèn)題,解決方法包括重置yum源,刪除多余的repo文件2024-11-11
使用docker compose安裝FastDfs文件服務(wù)器的實(shí)例詳解
這篇文章主要介紹了使用docker compose安裝FastDfs文件服務(wù)器的實(shí)例詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-10-10
Jenkins整合Docker自動(dòng)化部署的實(shí)現(xiàn)
本文主要介紹了Jenkins整合Docker自動(dòng)化部署的實(shí)現(xiàn),通過(guò)結(jié)合Jenkins的持續(xù)集成和Docker的容器化技術(shù),可以高效地構(gòu)建、測(cè)試和部署應(yīng)用程序,感興趣的可以了解一下2023-11-11

