🕌

VSCodeの開発コンテナ、いつどうやって開いたやつだっけ

2025/01/19に公開

やりたいこと

VSCode Dev Containers、便利でよく使っています。
しかしある時、「このコンテナはどのコマンドから起動したんだっけ」「どのDockerfileから作ったんだっけ」といったことを確認したい場面に遭遇しました。
そこで、VSCodeで現在実行中のコンテナの情報を確認するコマンドをメモしておきます。

結論

  1. [開発コンテナ内で実行] 調べたいコンテナのIDを取得(正確には先頭10文字)

    hostname
    
  2. [ホストマシンで実行] コンテナIDでinspectし、詳細情報を確認

    docker inspect <コンテナID> | less
    

inspectで得られる情報

docker inspectで確認できる情報は、

  • イメージ情報
  • 作成日時
  • マウント設定
  • 環境変数
  • 起動時の設定

など、コンテナに関して知りたいことはだいたい記述されていると思われます。

その分文字数が多いので、知りたいことが決まっている場合はエントリを調べてgrepしたほうが効率が良いです。

例. マウント情報の確認

docker inspect <コンテナID> | grep -A 20 Mounts

出力はjson形式で記述されていて、例えば以下のようなエントリがあります。

{
    "Id": <コンテナID>,
    "Created": "2024-11-08T14:04:55.35024229Z",
    "Path": "docker-entrypoint.sh",
    "Args": [
        "/bin/bash"
    ],
    ...
    "Name": "/container_name"
    "HostConfig": {
        "Binds": [
            "/home/user/.aws:/root/.aws:ro",
        ],
    ...
    }
...
}

公式のinspectコマンド説明にもある通り、 Goテンプレートの形式で取得できるそうです(私はあまり慣れていないのでgrepやless+検索しがちですが…)

多くの部分は、JSON からあらゆるフィールドを、ほとんど一般的な手法で 取得できます。

$ docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $INSTANCE_ID

その他VSCode開発コンテナで確認できる情報

  • 現在のコンテナがVSCode Dev Containersで実行されているか

    REMOTE_CONTAINERS環境変数を確認

    echo $REMOTE_CONTAINERS
    
  • コンテナ構成ファイル

    →Ctrl+Shift+P(macOSではCmd+Shift+P)でコマンドパレットを開き、
    「Remote-Containers: Open Container Configuration File」を実行

    [設定ファイル例]

    {
        "extensions": [
            "ms-ceintl.vscode-language-pack-ja",
            "ms-python.debugpy",
            "ms-python.python",
            "ms-python.vscode-pylance"
        ],
        "workspaceFolder": "/root"
    }
    

まとめ

  1. 実行中の開発コンテナのidはコンテナ内でhostnameを実行
  2. コンテナの情報はdocker inspectコマンドで詳細に確認可能

参考資料

Discussion