本文へスキップ
BecomeCoder

Dockerコース · 第7章 コンテナ同士をつなぐ · レッスン26

ネットワークの確認と片付け ― inspect・connect・rm

ブラウザで完結

導入

最後に、ネットワークの中身を覗く inspect、あとから繋ぎ替える connect、使い終わったら消す rm を押さえて、ネットワーク操作を1周にします。「どのコンテナが、どのネットワークにいるか」を読めることは、トラブル調査の基本です。

説明

docker network inspect <名前> で、そのネットワークにどのコンテナが繋がっているかを確認できます。

docker network create appnet
docker run -d --network appnet --name web nginx
docker network inspect appnet

"Containers" の欄に、繋がっているコンテナ(ここでは web)が並びます。「この DB ネットワークに、想定外のコンテナが繋がっていないか?」を確かめるのに使います。

起動済みのコンテナを、あとから別のネットワークにも繋ぐには docker network connect を使います。

docker run -d --name db postgres:16
docker network connect appnet db
docker network inspect appnet

これで、既定 bridge で起動した db を、あとから appnet にも参加させられました。逆に外すのは docker network disconnect です。

使い終わったネットワークは docker network rm <名前> で消します。ただし——コンテナが繋がっていると消せません(ボリュームと同じ安全装置)。また、bridgehostnone の3つは Docker 標準なので消せません。

flowchart LR
    A["docker network rm appnet"] --> B{"繋がっている<br/>コンテナがある?"}
    B -->|"ある"| C["❌ has active endpoints<br/>先にコンテナを消す/外す"]
    B -->|"ない"| D["✅ 削除"]

未使用のネットワークをまとめて掃除するには docker network prune です。ボリューム(第6章)と同じく、「作る→使う→片付ける」までが1周です。

やってみよう

  • docker network create appnetdocker run -d --network appnet --name web nginxdocker network inspect appnet で、web が繋がっていることを確認しましょう。
  • docker run -d --name db postgres:16(既定bridge)を docker network connect appnet db で appnet に参加させ、inspect で2つになることを見てください。
  • 繋がったまま docker network rm appnet を打つと断られること、docker network prune で未使用が掃除できることも試しましょう。

実際に動かしてみよう

下の端末に docker コマンドを打って Enter を押すと、その場で結果が返ります。本文の手順を実際になぞりながら進めましょう(各レッスンは毎回まっさらな状態から始まり、「最初からやり直す」でいつでも戻せます)。

Docker(シミュレート)

ブラウザ内で docker コマンドを試せる学習用環境を読み込みます(本物のDockerではなく、動きを再現したものです)。
スクロールして表示された時点でも自動で読み込まれます。