かべぎわブログ

技術的なことについてかけたらいいな…

docker inspectでDockerイメージの詳細を取得する

概要

docker inspectコマンドを利用してDockerイメージの詳細情報を取得してみたいと思います。

実行してみる

ローカルのDockerイメージ情報がこんな感じだとする。

$ sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
debian              latest              9a5d7185d3a6        8 days ago          101MB
ubuntu              latest              113a43faa138        4 weeks ago         81.2MB
centos              latest              49f7960eb7e4        4 weeks ago         200MB

そこでubuntuのイメージの詳細情報をみてみる。
すると以下のようにJSON形式で詳細情報がバーっとでてくる。
DockerイメージのIDや作成日、Dockerのバージョンなどが取得できる。

$ sudo docker inspect ubuntu
[
    {
        "Id": "sha256:113a43faa1382a7404681f1b9af2f0d70b182c569aab71db497e33fa59ed87e6",
        "RepoTags": [
            "ubuntu:latest"
        ],
        "RepoDigests": [
            "ubuntu@sha256:5f4bdc3467537cbbe563e80db2c3ec95d548a9145d64453b06939c4592d67b6d"
        ],
        "Parent": "",
        "Comment": "",
        "Created": "2018-06-05T21:20:54.310450149Z",
        "Container": "6713e927cc43b61a4ce3950a69907336ff55047bae9393256e32613a54321c70",
        "ContainerConfig": {
            "Hostname": "6713e927cc43",
            "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 [\"/bin/bash\"]"
            ],
            "ArgsEscaped": true,
            "Image": "sha256:c2775c69594daa3ee360d8e7bbca93c65d9c925e89bd731f12515f9bf8382164",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": {}
        },
        "DockerVersion": "17.06.2-ce",
~~~省略~~~

--formatで出力を絞る

--formatオプションを利用することでその項目だけを出力することができます。
JSONの階層を指定してあげます。

$ sudo docker inspect ubuntu --format="{{.Created}}"
2018-06-05T21:20:54.310450149Z
$ sudo docker inspect ubuntu --format="{{.ContainerConfig.Cmd}}"
[/bin/sh -c #(nop)  CMD ["/bin/bash"]]

おわりに

詳細情報が取得できた

Docker

Docker