このページで解説している内容は、以下の 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形式で表示
--formatGoテンプレート形式で必要な情報だけ表示できる(例: 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.2

Goテンプレートとは?

JSONデータのキーを {{ .キー名 }} のように指定すると、その値だけを表示できます。

docker container inspect --format '{{ .NetworkSettings.IPAddress }}' コンテナ名
  • {{ }} → 変数展開の記号(Goテンプレートの基本ルール)
  • .NetworkSettings.IPAddress → JSONのキーをドットで辿る

この例は、ネットワーク設定の中の IPAddress を取り出しています。

まとめ

  • コンテナのネットワーク設定を調べるには docker container inspect が便利
  • IPアドレスやゲートウェイなどの情報をJSON形式で確認できる。
  • --format オプションを使えば、欲しい情報だけをスッキリ表示できる。

これで「コンテナのIPどこ?」って迷うことがなくなりますね。