網(wǎng)站備案 深圳廣告投放的方式有哪些
什么是Docker Image?
Docker鏡像(Docker Image)是Docker容器技術(shù)的核心組件之一,它包含了運(yùn)行應(yīng)用程序所需的所有依賴(lài)、庫(kù)、代碼、運(yùn)行時(shí)環(huán)境以及配置文件等。
簡(jiǎn)單來(lái)說(shuō),Docker鏡像是一個(gè)輕量級(jí)、可執(zhí)行的軟件包,它封裝了應(yīng)用程序及其運(yùn)行環(huán)境,使得應(yīng)用程序可以在任何支持Docker的平臺(tái)上以相同的方式運(yùn)行。
關(guān)鍵特性:
- 層次化結(jié)構(gòu):Docker鏡像采用層次化結(jié)構(gòu),每個(gè)鏡像都是基于一個(gè)或多個(gè)基礎(chǔ)鏡像(父鏡像)構(gòu)建的。通過(guò)添加新的層次(如文件、配置、依賴(lài)等),可以創(chuàng)建新的鏡像。這種層次化結(jié)構(gòu)使得鏡像的共享和重用變得高效。
- 只讀性:Docker鏡像在構(gòu)建完成后是只讀的。當(dāng)運(yùn)行一個(gè)容器時(shí),Docker會(huì)在鏡像的基礎(chǔ)上創(chuàng)建一個(gè)可寫(xiě)的層(稱(chēng)為容器層),用于存儲(chǔ)運(yùn)行時(shí)的數(shù)據(jù)更改。這種設(shè)計(jì)保證了鏡像的不可變性,使得鏡像的分發(fā)和部署更加可靠和安全。
- 構(gòu)建與分發(fā):Docker鏡像可以通過(guò)Dockerfile文件來(lái)定義和構(gòu)建。Dockerfile包含了一系列指令,用于指定鏡像的構(gòu)建步驟和依賴(lài)關(guān)系。構(gòu)建完成后,鏡像可以被推送到Docker鏡像倉(cāng)庫(kù)(如Docker Hub)進(jìn)行分發(fā)和共享。
- 運(yùn)行容器:Docker容器是Docker鏡像的運(yùn)行實(shí)例。通過(guò)運(yùn)行Docker鏡像,可以創(chuàng)建一個(gè)或多個(gè)容器,這些容器在隔離的環(huán)境中運(yùn)行應(yīng)用程序。容器之間以及容器與宿主機(jī)之間通過(guò)特定的機(jī)制進(jìn)行通信和資源管理。
- 版本控制:Docker鏡像支持版本控制,可以通過(guò)標(biāo)簽(Tag)來(lái)標(biāo)識(shí)不同的版本。例如,一個(gè)鏡像可以有多個(gè)標(biāo)簽,如latest、1.0、2.0等,用于表示不同的版本或發(fā)布階段。
Docker Image 常用命令
docker rmi
刪除一個(gè)或多個(gè)在當(dāng)前服務(wù)器的鏡像;如果鏡像有多個(gè)tag,帶上tag可以對(duì)具體tag的鏡像進(jìn)行刪除;
使用 docker rmi [OPTIONS] IMAGE [IMAGE…]
別名docker image remove
docker image rm
參數(shù):
Option Description -f, --force 強(qiáng)制對(duì)鏡像進(jìn)行刪除 –no-prune 不刪除未標(biāo)記的父項(xiàng)
例子:
docker images
由于該鏡像ID被打上了多個(gè)標(biāo)簽,所以沒(méi)有辦法通過(guò)ID直接刪除;
只能通過(guò)鏡像名稱(chēng)[taged]來(lái)進(jìn)行刪除:
如果鏡像有對(duì)應(yīng)容器在運(yùn)行,那么無(wú)論通過(guò)鏡像ID還是名稱(chēng)[taged]的方式都是無(wú)法刪除的,必須先刪除已經(jīng)存在的容器(無(wú)論是否正在運(yùn)行的還是退出的):
docker ps
docker rmi nginx:1.23.4
docker rmi a7be6198544f
docker ps -a | grep nginx:1.23.4
逐個(gè)刪除已經(jīng)刪除的容器:
docker rmi nginx:1.23.4
最終刪除掉鏡像
docker save
將一個(gè)或多個(gè)鏡像保存到tar文檔中(默認(rèn)為STDOUT);
用法 docker save [OPTIONS] IMAGE [IMAGE…]
別名docker image save
參數(shù) :
Option Description -o, --output 寫(xiě)到一個(gè)文件中,替代標(biāo)準(zhǔn)輸出流STDOUT
例子:
將鏡像保存到歸檔文件中:
準(zhǔn)備將busybox:latest 鏡像保存到該目錄下;
docker save -o busybox0.1.tar busybox:latest
保存之后大小與原本鏡像大小基本一致;
docker load
從tar文檔中加載一個(gè)鏡像
用法: docker image load [OPTIONS]
別名 docker image load
參數(shù)
Option Description -i, --input 讀取tar文檔 -q, --quiet 抑制負(fù)載輸出
例子:
docker load -i busybox0.1.tar
docker image inspect
對(duì)鏡像陳列具體的信息
用法:docker image inspect [OPTIONS] IMAGE [IMAGE…]
參數(shù):
Option Description -f, --format 根據(jù)具體格式輸出:‘json’: Print in JSON 格式 ;
docker image history
展示鏡像的歷史情況
用法: docker image history [OPTIONS] IMAGE
別名 docker history
參數(shù):
Option Description -H, --human 以人可讀格式打印大小和日期 –no-trunc 不截?cái)噍敵?/td> -q, --quiet 只展示鏡像ID –format 根據(jù)具體格式輸出
例子:
docker history nginx:1.24.0
docker import
從tar文檔導(dǎo)入內(nèi)容以創(chuàng)建鏡像
用法 docker image import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
別名 docker image import
參數(shù):
Option Description -c, --change 將 Dockerfile 指令應(yīng)用于創(chuàng)建的鏡像 -m, --message 為導(dǎo)入的鏡像設(shè)置提交消息 –platform 如果服務(wù)器支持多平臺(tái),則設(shè)置 platform
例子:
docker import busybox0.1.tar ahri/busybox:0.4
docker image prune
刪除不使用的鏡像
用法:docker image prune [OPTIONS]
參數(shù):
Option Description -a, --all 刪除所有未使用的圖像,而不僅僅是懸空的圖像 –filter 提供篩選條件值(例如until=< timestamp >) -f, --force 不提示確認(rèn)
例子:
docker image prune