docker鏡像查看

1. 使用images命令列出鏡像

使用docker images或者docker image ls命令可以列出本地主機(jī)上已有鏡像的基本信息。

$ docker images
REPOSITORY TAG     IMAGE ID       CREATED     SIZE
ubuntu             16.04   2fa927b5cdd3 2 weeks ago 122 MB
ubuntu             latest   2fa927b5cdd3 2 weeks ago 122 MB
ubuntu             14.04   8f1bd21bd25c 2 weeks ago 188 MB

在列出的信息中,可以看到以下幾個(gè)字段信息艺栈。

  • 來自于哪個(gè)倉庫,比如ubuntu倉庫用來保存ubuntu系列的基礎(chǔ)鏡像;
  • 鏡像的標(biāo)簽信息俊抵,比如14.04、latest用來標(biāo)注不同的版本信息坐梯。標(biāo)簽徽诲,只是標(biāo)記,并不能標(biāo)識鏡像內(nèi)容吵血;
  • 鏡像的ID(唯一標(biāo)識鏡像)谎替,如ubuntu:latest和ubuntu:16.04鏡像的ID都是2fa927b5cdd3,說明它們目前實(shí)際上指向同一個(gè)鏡像蹋辅;
  • 創(chuàng)建時(shí)間钱贯,說明鏡像最后的更新時(shí)間;
  • 鏡像大小侦另,優(yōu)秀的鏡像往往體積都較小秩命。

images子命令主要支持如下選項(xiàng):

  • -a,--all=true|false:列出所有的鏡像文件(包括臨時(shí)文件)褒傅,默認(rèn)為否硫麻;
  • --digests=true|false:列出鏡像的數(shù)字摘要值,默認(rèn)為否樊卓;
  • -f拿愧,--filter=[]:過濾列出的鏡像,如 dangling=true只顯示沒有標(biāo)簽的鏡像碌尔;
  • --format="TEMPLATE":控制輸出格式浇辜,如.ID代表ID信息券敌,.Repository代表倉庫信息等;
  • --no-trunc=true|false:對輸出結(jié)果中太長的部分是否進(jìn)行截?cái)嗔螅珑R像的ID信息待诅,默認(rèn)為是;
  • -q熊镣,--quiet=true|false:僅輸出 ID信息卑雁,默認(rèn)為否。

-f绪囱, --filter=[] 的使用

# 列出沒有tag的鏡像
# docker images -f "dangling=true"
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
<none>              <none>              450e15c7459f        10 hours ago        177MB
<none>              <none>              96ae66cb0553        10 hours ago        177MB
<none>              <none>              a05eb601e28c        10 hours ago        177MB
<none>              <none>              402ba2565be1        10 hours ago        177MB

可以使用以下命令批量刪除沒有tag的鏡像:

docker rmi $(docker images -f “dangling=true” -q)

當(dāng)前支持的過濾配置的key有:

  • dangling:顯示標(biāo)記為空的鏡像测蹲,值只有true和false
  • label:這個(gè)是根據(jù)標(biāo)簽進(jìn)行過濾,其中l(wèi)able的值鬼吵,是docker在編譯的時(shí)候配置的或者在Dockerfile中配置的
  • before:這個(gè)是根據(jù)時(shí)間來進(jìn)行過濾扣甲,其中before的value表示某個(gè)鏡像構(gòu)建時(shí)間之前的鏡像列表
  • since:跟before正好相反,表示的是在某個(gè)鏡像構(gòu)建之后構(gòu)建的鏡像
  • reference:這個(gè)是添加正則進(jìn)行匹配

--format 輸出結(jié)果格式化展示:

  • ID Image ID
  • Repository Image repository
  • Tag Image tag
  • Digest Image digest
  • CreatedSince Elapsed time since the image was created
  • CreatedAt Time when the image was created
  • Size Image disk size
[root@localhost ~]# docker images --format "{{.Repository}}:{{.Tag}}\t{{.Size}}" |column -t
nginx:latest                         192MB
hello-world:1.1                      13.3kB
hello-world:latest                   13.3kB
multiarch/qemu-user-static:register  4.9MB

2. 使用tag命令添加鏡像標(biāo)簽

為了方便在后續(xù)工作中使用特定鏡像齿椅,還可以使用docker tag命令來為本地鏡像任意添加新的標(biāo)簽琉挖。例如添加一個(gè)新的myubuntu:latest鏡像標(biāo)簽:

$ docker tag ubuntu:latest myubuntu:latest
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 16.04 2fa927b5cdd3 2 weeks ago 122 MB
ubuntu latest 2fa927b5cdd3 2 weeks ago 122 MB
myubuntu latest 2fa927b5cdd3 2 weeks ago 122 MB
ubuntu 14.04 8f1bd21bd25c 2 weeks ago 188 MB

可以看到myubuntu:latest鏡像的ID跟ubuntu:latest完全一致。它們實(shí)際上指向同一個(gè)鏡像文件涣脚,只是別名不同而已示辈。docker tag命令添加的標(biāo)簽實(shí)際上起到了類似鏈接的作用。

3. 使用inspect命令查看詳細(xì)信息

[root@localhost ~]# docker inspect hello-world
[
    {
        "Id": "sha256:9c7a54a9a43cca047013b82af109fe963fde787f63f9e016fdc3384500c2823d",
        "RepoTags": [
            "hello-world:1.1",
            "hello-world:latest"
        ],
        "RepoDigests": [
            "hello-world@sha256:c79d06dfdfd3d3eb04cafd0dc2bacab0992ebc243e083cabe208bac4dd7759e0"
        ],
        "Parent": "",
        "Comment": "",
        "Created": "2023-05-04T17:37:03.872958712Z",
        "Loaded": "2023-12-06T13:46:57.813793161+08:00",
        "Container": "347ca68872ee924c4f9394b195dcadaf591d387a45d624225251efc6cb7a348e",
        "ContainerConfig": {
            "Hostname": "347ca68872ee",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            ],
            "Cmd": [
                "/bin/sh",
                "-c",
                "#(nop) ",
                "CMD [\"/hello\"]"
            ],
            "Image": "sha256:62a15619037f3c4fb4e6ba9bd224cba3540e393a55dc52f6bebe212ca7b5e1a7",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": {},
            "Annotations": null
        },
        "DockerVersion": "20.10.23",
        "Author": "",
        "Config": {
            "Hostname": "",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            ],
            "Cmd": [
                "/hello"
            ],
            "Image": "sha256:62a15619037f3c4fb4e6ba9bd224cba3540e393a55dc52f6bebe212ca7b5e1a7",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": null,
            "Annotations": null
        },
        "Architecture": "amd64",
        "Os": "linux",
        "Size": 13256,
        "VirtualSize": 13256,
        "GraphDriver": {
            "Data": {
                "MergedDir": "/var/lib/docker/overlay2/6fa22b8b4565e5852d42bbe83a6fd59ca07e20b1d8697150ddc61216a3c47bc0/merged",
                "UpperDir": "/var/lib/docker/overlay2/6fa22b8b4565e5852d42bbe83a6fd59ca07e20b1d8697150ddc61216a3c47bc0/diff",
                "WorkDir": "/var/lib/docker/overlay2/6fa22b8b4565e5852d42bbe83a6fd59ca07e20b1d8697150ddc61216a3c47bc0/work"
            },
            "Name": "overlay2"
        },
        "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:01bb4fce3eb1b56b05adf99504dafd31907a5aadac736e36b27595c8b92f07f1"
            ]
        },
        "Metadata": {
            "LastTagTime": "2023-12-20T15:41:57.72013765+08:00"
        }
    }
]

返回的是一個(gè)JSON格式的消息遣蚀,如果我們只要其中一項(xiàng)內(nèi)容時(shí)顽耳,可以使用參數(shù)-f來指定,例如妙同,獲取鏡像的Architecture:

[root@localhost ~]# docker inspect hello-world -f "{{.Architecture}}"
amd64

4. 使用history命令查看鏡像歷史

既然鏡像文件由多個(gè)層組成射富,那么怎么知道各個(gè)層的內(nèi)容具體是什么
呢?這時(shí)候可以使用history子命令粥帚,該命令將列出各層的創(chuàng)建信息胰耗。
例如,查看鏡像的創(chuàng)建過程芒涡,可以使用如下命令:

[root@localhost ~]# docker history hello-world
IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
9c7a54a9a43c        7 months ago        /bin/sh -c #(nop)  CMD ["/hello"]               0B
<missing>           7 months ago        /bin/sh -c #(nop) COPY file:201f8f1849e89d53…   13.3kB

過長的命令被自動(dòng)截?cái)嗔瞬竦疲梢允褂们懊嫣岬降?-no-trunc選項(xiàng)來輸
出完整命令。

[root@localhost ~]# docker history hello-world --no-trunc
IMAGE                                                                     CREATED             CREATED BY                                                                                           SIZE                COMMENT
sha256:9c7a54a9a43cca047013b82af109fe963fde787f63f9e016fdc3384500c2823d   7 months ago        /bin/sh -c #(nop)  CMD ["/hello"]                                                                    0B
<missing>                                                                 7 months ago        /bin/sh -c #(nop) COPY file:201f8f1849e89d53be9f6aa76937f5e209d745abfd15a8552fcf2ba45ab267f9 in /    13.3kB

5. 搜鏡像

使用docker search命令可以搜索遠(yuǎn)端倉庫中?享的鏡像费尽,默認(rèn)搜索官方倉庫中的鏡像赠群。用法為docker search NAME,支持的參數(shù)主要包括:

  • --automated=true|false:僅顯示自動(dòng)創(chuàng)建的鏡像旱幼,默認(rèn)為否查描;
  • --no-trunc=true|false:輸出信息不截?cái)囡@示,默認(rèn)為否;
  • -s冬三,--stars=X:指定僅顯示評價(jià)為指定星級以上的鏡像匀油,默認(rèn)為0,即輸出所有鏡像勾笆。
    例如敌蚜,搜索所有自動(dòng)創(chuàng)建的評價(jià)為1+的帶nginx關(guān)鍵字的鏡像,如下所示:
[root@localhost ~]# docker search --automated -s 3 nginx
Flag --automated has been deprecated, use --filter=is-automated=true instead
Flag --stars has been deprecated, use --filter=stars=3 instead
NAME                               DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
bitnami/nginx                      Bitnami nginx Docker Image                      180                                     [OK]
bitnami/nginx-ingress-controller   Bitnami Docker Image for NGINX Ingress Contr…   32                                      [OK]

可以看到新版本--automated和--stars已廢棄窝爪,使用--filter=is-automated=true和--filter=stars=3替代

  • 只搜索官方鏡像

docker search -f is-official=true java

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末弛车,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蒲每,更是在濱河造成了極大的恐慌纷跛,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件啃勉,死亡現(xiàn)場離奇詭異忽舟,居然都是意外死亡双妨,警方通過查閱死者的電腦和手機(jī)淮阐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來刁品,“玉大人泣特,你說我怎么就攤上這事√羲妫” “怎么了状您?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長兜挨。 經(jīng)常有香客問我膏孟,道長,這世上最難降的妖魔是什么拌汇? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任柒桑,我火速辦了婚禮,結(jié)果婚禮上噪舀,老公的妹妹穿的比我還像新娘魁淳。我一直安慰自己,他們只是感情好与倡,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布界逛。 她就那樣靜靜地躺著,像睡著了一般纺座。 火紅的嫁衣襯著肌膚如雪息拜。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天,我揣著相機(jī)與錄音该溯,去河邊找鬼岛抄。 笑死,一個(gè)胖子當(dāng)著我的面吹牛狈茉,可吹牛的內(nèi)容都是我干的夫椭。 我是一名探鬼主播,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼氯庆,長吁一口氣:“原來是場噩夢啊……” “哼蹭秋!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起堤撵,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤仁讨,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后实昨,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體洞豁,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年荒给,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了丈挟。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,919評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡志电,死狀恐怖曙咽,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情挑辆,我是刑警寧澤例朱,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站鱼蝉,受9級特大地震影響洒嗤,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜魁亦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一渔隶、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧吉挣,春花似錦派撕、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至氯哮,卻和暖如春际跪,著一層夾襖步出監(jiān)牢的瞬間商佛,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工姆打, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留良姆,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓幔戏,卻偏偏與公主長得像玛追,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子闲延,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評論 2 354

推薦閱讀更多精彩內(nèi)容