Dockerコンテナ内の情報を取得する方法(docker inspect)

コンテナを使用する際,そのコンテナ内で定義されているENVCMDなどを知りたい場合が多々あります.作成元のDockerfileを読み解くことでこれらの情報を得ることもできますが,すでにコマンドが用意されています.

コンテナ内の情報は,docker inspectコマンドで確認できます.

特に知りたい情報は,

  • ENV
  • CMD
  • ENTRYPOINT
  • WORKDIR
  • EXPORSE

などでしょう.

基本構文は下記のとおりです.


docker inspect -f <format> <IMAGE|CONTAINER>

formatに関して対応表を作ると,次のようになります.

State変数
ENV.Config.Env
CMD.Config.Cmd
ENTRYPOINT.Config.Entrypoint
WORKDIR.Config.WorkingDir
EXPOSE.Config.ExposedPort
目次

使い方

ここでは,よく使用されるコンテナイメージであるnginxを例題として使用します.

ENV


docker inspect -f "{{.Config.Env}}" nginx:latest
[PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin NGINX_VERSION=1.23.2 NJS_VERSION=0.7.7 PKG_RELEASE=1~bullseye]

ENVは複数与えられるため,そのまま表示すると読みにくくなります.

sedawkにより読みやすく出力することができます.


docker inspect -f "{{.Config.Env}}" nginx:latest | awk '{print substr($0, 2, length($0)-2)}' | sed 's/ /\n/g'
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
NGINX_VERSION=1.23.2
NJS_VERSION=0.7.7
PKG_RELEASE=1~bullseye

EXPOSE


docker inspect -f "{{.Config.ExposedPorts}}" nginx:latest 
map[80/tcp:{}]

すべての情報

これまで,-fでほしい情報を指定していましたが,すべての情報を得る場合は下記コマンドでできます.


docker inspect nginx:latest 
[
    {
        "Id": "sha256:76c69feac34e85768b284f84416c3546b240e8cb4f68acbbe5ad261a8b36f39f",
        "RepoTags": [
            "nginx:latest"
        ],
        "RepoDigests": [
            "nginx@sha256:943c25b4b66b332184d5ba6bb18234273551593016c0e0ae906bab111548239f"
        ],
        "Parent": "",
        "Comment": "",
        "Created": "2022-10-25T10:23:08.612298023Z",
        "Container": "783c85ff89f13f3b8df2f85ff9a8c0967600272c4da75f18023c75713d64785f",
        "ContainerConfig": {
            "Hostname": "783c85ff89f1",
            "Domainname": "",
...
よかったらシェアしてね!
目次