VSCodeの開発コンテナ、いつどうやって開いたやつだっけ
やりたいこと
VSCode Dev Containers、便利でよく使っています。
しかしある時、「このコンテナはどのコマンドから起動したんだっけ」「どのDockerfileから作ったんだっけ」といったことを確認したい場面に遭遇しました。
そこで、VSCodeで現在実行中のコンテナの情報を確認するコマンドをメモしておきます。
結論
-
[開発コンテナ内で実行] 調べたいコンテナのIDを取得(正確には先頭10文字)
hostname
-
[ホストマシンで実行] コンテナ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" }
まとめ
- 実行中の開発コンテナのidはコンテナ内で
hostname
を実行 - コンテナの情報は
docker inspect
コマンドで詳細に確認可能
Discussion