読者です 読者をやめる 読者になる 読者になる

AKAI TSUKI

System development or Technical something

use docker inspect command

"docker inspect -f"

docker inpsect コマンドのフォーマット指定について確認してみました。

途中省略していますが、以下のように表示されます。

# docker inspect af8068
[
    {
        "Id": "af80684d6eee152466c11f595b930e70bc523c8404126d034742cd00e677b469",

        *snip*
        
        "NetworkSettings": {
            "Bridge": "",

            *snip*

            "Networks": {
                "overlay1": {
                    "IPAMConfig": {
                        "IPv4Address": "10.0.0.8"
                    },
                    "Links": null,
                    "Aliases": [
                        "af80684d6eee"
                    ],
                    "NetworkID": "390dc5a9u7v9nwakdwvs0mxkl",
                    "EndpointID": "f96c42b6e48a691522348726d73112cba526d6b4d71d0f65f7a24cf0d8f4a74d",
                    "Gateway": "",
                    "IPAddress": "10.0.0.8",
                    "IPPrefixLen": 24,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:0a:00:00:08"
                }
            }
        }
    }

]
#

Network関連の情報をとるために、オプションを指定してみました。

# docker inspect -f '{{ .NetworkSettings.Networks}}' af8068
map[overlay1:0xc8200b6780]
# docker inspect -f '{{json .NetworkSettings.Networks}}' af8068
{"overlay1":{"IPAMConfig":{"IPv4Address":"10.0.0.8"},"Links":null,"Aliases":["af80684d6eee"],"NetworkID":"390dc5a9u7v9nwakdwvs0mxkl","EndpointID":"f96c42b6e48a691522348726d73112cba526d6b4d71d0f65f7a24cf0d8f4a74d","Gateway":"","IPAddress":"10.0.0.8","IPPrefixLen":24,"IPv6Gateway":"","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"MacAddress":"02:42:0a:00:00:08"}}

rangeを設定すると配列のように複数項目がある場合にループ処理している。 下の例では、Networkの一つであるoverlay1が一つの項目になる。 また、json形式で表示されたい場合は、-fのオプション時にjsonを指定する。

# docker inspect -f '{{range .NetworkSettings.Networks}}{{json .}}{{end}}' af8068
{"IPAMConfig":{"IPv4Address":"10.0.0.8"},"Links":null,"Aliases":["af80684d6eee"],"NetworkID":"390dc5a9u7v9nwakdwvs0mxkl","EndpointID":"f96c42b6e48a691522348726d73112cba526d6b4d71d0f65f7a24cf0d8f4a74d","Gateway":"","IPAddress":"10.0.0.8","IPPrefixLen":24,"IPv6Gateway":"","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"MacAddress":"02:42:0a:00:00:08"}
# docker inspect -f '{{range .NetworkSettings.Networks}}{{println .}}{{end}}' af8068
&{0xc82032e540 [] [af80684d6eee] 390dc5a9u7v9nwakdwvs0mxkl f96c42b6e48a691522348726d73112cba526d6b4d71d0f65f7a24cf0d8f4a74d  10.0.0.8 24   0 02:42:0a:00:00:08}
# docker inspect -f '{{range .NetworkSettings.Networks}}{{ .}}{{end}}' af8068
{0xc82032e600 [] [af80684d6eee] 390dc5a9u7v9nwakdwvs0mxkl f96c42b6e48a691522348726d73112cba526d6b4d71d0f65f7a24cf0d8f4a74d  10.0.0.8 24   0 02:42:0a:00:00:08}