このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
Docker超入門:DockerでコンテナのIPアドレスとネットワーク設定を確認する方法

DockerでコンテナのIPアドレスとネットワーク設定を確認する方法
Dockerを使ってコンテナを動かしていると、「このコンテナのIPアドレスって何?」「どのネットワークにつながっているの?」と気になることってありますよね。そんなときに便利なのが docker container inspect コマンドです。この記事では、実際にBusyBoxコンテナを例に、ネットワーク情報を確認する流れを解説していきます。

まずは環境を整理してスッキリさせる
検証の前に、一度古いコンテナやイメージを整理しておくと後の作業が分かりやすいです。
docker system prune -aこれを実行すると、停止済みコンテナや不要なイメージが削除されます。さらに、残っているボリュームも不要なら消しておくと環境がスッキリします。
コンテナを起動する
まずは確認用のコンテナを立ち上げましょう。ここでは軽量な BusyBox を使います。
docker run -itd --name busybox-container busyboxこのコマンドの意味を整理すると次のとおりです。
| オプション/コマンド | 説明 |
|---|---|
| docker run | コンテナを新しく実行するコマンド |
| -i | 標準入力を開いて対話モードを有効にする。 |
| -t | 仮想端末(tty)を割り当てる。 |
| -d | バックグラウンドでコンテナを起動する。 |
| --name busybox-container | コンテナに「busybox-container」という名前を付ける。 |
| busybox | 使用するイメージ(ここではBusyBox) |
出力結果
PS C:\Users\joeac> docker run -itd --name busybox-container busybox
Unable to find image 'busybox:latest' locally
latest: Pulling from library/busybox
80bfbb8a41a2: Pull complete
Digest: sha256:d82f458899c9696cb26a7c02d5568f81c8c8223f8661bb2a7988b269c8b9051e
Status: Downloaded newer image for busybox:latest
954ab82f00bd9be1daf53ca96e316b8c8c8ef9e539903e25b67646a3a15278aeこれで「busybox-container」という名前のコンテナがバックグラウンドで動き始めます。
コンテナのネットワーク情報を確認する
コンテナが立ち上がったら、いよいよネットワーク設定を確認してみましょう。
docker container inspect busybox-containerこのコマンドを実行すると、コンテナの詳細情報が JSON形式 で表示されます。その中にはネットワークに関する情報も含まれています。
例えば出力の一部はこんな感じです。
"Networks": {
"bridge": {
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.2",
"MacAddress": "ba:22:18:f3:c7:47",
}
}この例から分かるのは次のポイントです。
- コンテナは bridgeネットワーク に接続されている
- IPアドレスは 172.17.0.2
- デフォルトゲートウェイは 172.17.0.1
- MACアドレスも確認できる
docker container inspect の書式とオプション
コマンドの書式はとてもシンプルです。
docker container inspect [OPTIONS] コンテナ名またはIDよく使うオプションを整理するとこんな感じ。
| オプション | 説明 |
|---|---|
| なし | コンテナのすべての情報をJSON形式で表示 |
| --format | Goテンプレート形式で必要な情報だけ表示できる(例: IPだけ取り出すなど) |
例えば、IPアドレスだけ取り出したいときはこんな書き方もできます。
docker container inspect --format '{{ .NetworkSettings.IPAddress }}' busybox-container実行例
PS C:\Users\joeac> docker container inspect --format '{{ .NetworkSettings.IPAddress }}' busybox-container
172.17.0.2Goテンプレートとは?
JSONデータのキーを {{ .キー名 }} のように指定すると、その値だけを表示できます。
docker container inspect --format '{{ .NetworkSettings.IPAddress }}' コンテナ名
{{ }}→ 変数展開の記号(Goテンプレートの基本ルール).NetworkSettings.IPAddress→ JSONのキーをドットで辿る
この例は、ネットワーク設定の中の IPAddress を取り出しています。
まとめ
- コンテナのネットワーク設定を調べるには docker container inspect が便利
- IPアドレスやゲートウェイなどの情報をJSON形式で確認できる。
- --format オプションを使えば、欲しい情報だけをスッキリ表示できる。
これで「コンテナのIPどこ?」って迷うことがなくなりますね。
