官术网_书友最值得收藏!

3.2 查看鏡像信息

本節主要介紹Docker鏡像的ls、tag和inspect子命令。

1.使用images命令列出鏡像

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

例如,下面的命令列出了上一小節中下載的鏡像信息:

        $ docker images
        REPOSITORY                TAG              IMAGE ID             CREATED                SIZE
        ubuntu                    18.04            452a96d81c30         2 weeks ago            79.6MB
        ubuntu                    latest           452a96d81c30         2 weeks ago            79.6MB

在列出信息中,可以看到幾個字段信息:

? 來自于哪個倉庫,比如ubuntu表示ubuntu系列的基礎鏡像;

? 鏡像的標簽信息,比如18.04、latest表示不同的版本信息。標簽只是標記,并不能標識鏡像內容;

? 鏡像的ID(唯一標識鏡像),如果兩個鏡像的ID相同,說明它們實際上指向了同一個鏡像,只是具有不同標簽名稱而已;

? 創建時間,說明鏡像最后的更新時間;

? 鏡像大小,優秀的鏡像往往體積都較小。

其中鏡像的ID信息十分重要,它唯一標識了鏡像。在使用鏡像ID的時候,一般可以使用該ID的前若干個字符組成的可區分串來替代完整的ID。

TAG信息用于標記來自同一個倉庫的不同鏡像。例如ubuntu倉庫中有多個鏡像,通過TAG信息來區分發行版本,如18.04、18.10等。

鏡像大小信息只是表示了該鏡像的邏輯體積大小,實際上由于相同的鏡像層本地只會存儲一份,物理上占用的存儲空間會小于各鏡像邏輯體積之和。

images子命令主要支持如下選項,用戶可以自行進行嘗試:

? -a, --all=true|false:列出所有(包括臨時文件)鏡像文件,默認為否;

? --digests=true|false:列出鏡像的數字摘要值,默認為否;

? -f, --filter=[]:過濾列出的鏡像,如dangling=true只顯示沒有被使用的鏡像;也可指定帶有特定標注的鏡像等;

? --format="TEMPLATE":控制輸出格式,如.ID代表ID信息,.Repository代表倉庫信息等;

? --no-trunc=true|false:對輸出結果中太長的部分是否進行截斷,如鏡像的ID信息,默認為是;

? -q, --quiet=true|false:僅輸出ID信息,默認為否。

其中,還支持對輸出結果進行控制的選項,如-f. --filter=[]、--no-trunc=true|false、-q、--quiet=true|false等。

更多子命令選項還可以通過man docker-images來查看。

2.使用tag命令添加鏡像標簽

為了方便在后續工作中使用特定鏡像,還可以使用docker tag命令來為本地鏡像任意添加新的標簽。例如,添加一個新的myubuntu:latest鏡像標簽:

        $ docker tag ubuntu:latest myubuntu:latest

再次使用docker images列出本地主機上鏡像信息,可以看到多了一個myubuntu:latest標簽的鏡像:

        $ docker images
        REPOSITORY               TAG              IMAGE ID              CREATED                SIZE
        ubuntu                   18.04            452a96d81c30          2 weeks ago            79.6MB
        ubuntu                   latest           452a96d81c30          2 weeks ago            79.6MB
        myubuntu                 latest           452a96d81c30          2 weeks ago            79.6MB

之后,用戶就可以直接使用myubuntu:latest來表示這個鏡像了。

細心的讀者可能注意到,這些myubuntu:latest鏡像的ID跟ubuntu:latest是完全一致的,它們實際上指向了同一個鏡像文件,只是別名不同而已。docker tag命令添加的標簽實際上起到了類似鏈接的作用。

3.使用inspect命令查看詳細信息

使用docker[image]inspect命令可以獲取該鏡像的詳細信息,包括制作者、適應架構、各層的數字摘要等:

        $ docker [image] inspect ubuntu:18.04
        [
            {
                "Id": "sha256:452a96d81c30a1e426bc250428263ac9ca3f47c9bf086f876d11cb39cf57aeec",
                "RepoTags": [
                    "ubuntu:18.04",
                    "ubuntu:latest"
                ],
                "RepoDigests": [
                    "ubuntu@sha256:c8c275751219dadad8fa56b3ac41ca6cb22219ff117ca98fe82b42f24e1ba64e"
                ],
                "Parent": "",
                "Comment": "",
                "Created": "2018-04-27T23:28:36.319694807Z",
                ...
        ]

上面代碼返回的是一個JSON格式的消息,如果我們只要其中一項內容時,可以使用-f來指定,例如,獲取鏡像的Architecture:

        $ docker [image] inspect -f {{".Architecture"}} ubuntu:18.04
        amd64

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

既然鏡像文件由多個層組成,那么怎么知道各個層的內容具體是什么呢?這時候可以使用history子命令,該命令將列出各層的創建信息。

例如,查看ubuntu:18.04鏡像的創建過程,可以使用如下命令:

        $ docker history ubuntu:18.04
        IMAGE          CREATED         CREATED BY                  SIZE                        COMMENT
        452a96d81c30 5 weeks ago       /bin/sh -c #(nop)   CMD ["/bin/bash"]                   0B
        <missing>      5 weeks ago     /bin/sh -c mkdir -p /run/systemd && echo 'do… 7B

注意,過長的命令被自動截斷了,可以使用前面提到的--no-trunc選項來輸出完整命令。

主站蜘蛛池模板: 定南县| 富平县| 延长县| 西宁市| 彰武县| 会泽县| 汾西县| 定安县| 元氏县| 桦南县| 诏安县| 潜山县| 南充市| 石柱| 皮山县| 宜良县| 洛隆县| 静宁县| 合江县| 班戈县| 页游| 耿马| 嘉峪关市| 莫力| 武冈市| 依兰县| 密云县| 探索| 祁东县| 庆安县| 永济市| 从江县| 上犹县| 汕尾市| 许昌市| 浦江县| 勐海县| 玉山县| 岫岩| 苍南县| 肃南|