日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Docker镜像基本使用

發(fā)布時間:2025/6/17 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Docker镜像基本使用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

使用?Docker?鏡像

Docker?運行容器前需要本地存在對應的鏡像,如果本地不存在該鏡像,Docker?會從鏡像倉庫下載該鏡像。

獲取鏡像

docker?pull?[選項]?[Docker?Registry?地址[:端口號]/]倉庫名[:標簽]

Docker?鏡像倉庫地址:

地址的格式一般是??<域名/IP>[:端口號]??。默認地址是?Docker?Hub。

倉庫名:

倉庫名是兩段式名稱,即??<用戶名>/<軟件名>??。對于?Docker?Hub,如果不給出用戶名,則默認為??library??,也就是官方鏡像。

例如拉取ubuntu:18.04

docker?pull?ubuntu:18.04

沒有給出?Docker?鏡像倉庫地址,因此將會從?Docker?Hub?獲取鏡像。而鏡像名稱是??ubuntu:18.04??,因此將會獲取官方鏡像??library/ubuntu倉庫中標簽為??18.04??的鏡像。

?

從下載過程中可以看到鏡像是由多層存儲所構成。下載也是一層層的去下載,并非單一文件。下載過程中給出了每一層的?ID?的前?12?位。并且下載結束后,給出該鏡像完整的??sha256??的摘要,以確保下載一致性。

Docker?Hub?下載鏡像非常緩慢,可以配置加?鏡像速器。

運行

啟動里面的??bash??并且進行交互式操作,交互式啟動容器的bash并且查看系統(tǒng)版本信息

docker?run?-it?ubuntu:18.04?bash

cat?/etc/os-release

?

-it??:這是兩個參數(shù),一個是??-i??:交互式操作,一個是??-t??終端。打算進入??bash??執(zhí)行一些命令并查看返回結果,因此需要交互式終端。

ubuntu:18.04??:這是指用??ubuntu:18.04??鏡像為基礎來啟動容器。

bash??:放在鏡像名后的是?命令,這里希望有個交互式?Shell,因此用的是bash??。

進入容器后,可以在?Shell?下操作,執(zhí)行任何所需的命令。這里,執(zhí)行了

cat?/etc/os-release??,這是?Linux?常用的查看當前系統(tǒng)版本的命令,從返回的結果可以看到容器內(nèi)是??Ubuntu?18.04.1?LTS??系統(tǒng)。最后通過??exit??退出了這個容器。

?

列出鏡像?docker?image?ls

?

倉庫名??、?標簽??、?鏡像?ID??、?創(chuàng)建時間??以及??所占用的空間

需要注意的問題是,?docker?image?ls??列表中的鏡像體積總和并非是所有鏡像實際硬盤消耗。由于?Docker?鏡像是多層存儲結構,并且可以繼承、復用,因此不同鏡像可能會因為使用相同的基礎鏡像,從而擁有共同的層。由于?Docker使用?Union?FS,相同的層只需要保存一份即可,因此實際鏡像硬盤占用空間很可能要比這個列表鏡像大小的總和要小的多。

?

查看鏡像、容器、數(shù)據(jù)卷所占用的空間。

docker?system?df

?

顯示鏡像摘要

docker?image?ls?--digests

?

中間層鏡像

為了加速鏡像構建、重復利用資源,Docker?會利用?中間層鏡像。所以在使用一段時間后,可能會看到一些依賴的中間層鏡像。默認的??docker?image?ls??列表中只會顯示頂層鏡像,如果希望顯示包括中間層鏡像在內(nèi)的所有鏡像的話:docker?image?ls?-a

?


補充幾個:

docker?image?ls?ubuntu?根據(jù)倉庫名列出鏡像

docker?image?ls?ubuntu:18.04?列出特定的某個鏡像,也就是說指定倉庫名和標簽

docker?image?ls?-f?since=mongo:3.2?希望看到mongo:3.2??之后建立的鏡像

docker?image?ls?-q?只顯示id

docker?image?ls?--format?"{{.ID}}:?{{.Repository}}"??顯示id和倉庫名(這個比較好用)

docker?image?ls?--format?"table?{{.ID}}\t{{.Repository}}\t{{.Tag}}"?以表格等距顯示,并且有標題行,和默認一樣,不過自己定義列

?

刪除本地鏡像

docker?image?rm?[選項]?<鏡像1>?[<鏡像2>?...] 或者直接 docker rmi ...

其中,?<鏡像>??可以是??鏡像短?ID??、?鏡像長?ID??、?鏡像名??或者??鏡像摘要??。

Untagged?和?Deleted??鏡像是分層存儲的,如果當前鏡像還被其他層更高的層使用,或者是別的標簽也指向這個鏡像,那么所謂的刪除就只是刪除這個標簽對應的就是Untagged,如果只有這一個標簽再使用,并且其他層也不依賴這個鏡像,那么就會真的執(zhí)行Deleted。

PS:如果有用這個鏡像啟動的容器存在(即使容器沒有運行),那么同樣不可以刪除這個鏡像。

?

清理鏡像

docker image prune

它支持的子命令有:

  • -a, --all: 刪除所有沒有用的鏡像,而不僅僅是臨時文件;
  • -f, --force:強制刪除鏡像文件,無需彈出提示確認;

另外,執(zhí)行完?docker image prune?命令后,還是告訴我們釋放了多少存儲空間!

?

?

總結

以上是生活随笔為你收集整理的Docker镜像基本使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。