このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

Docker超入門:Dockerネットワークに接続されたコンテナの起動と切断・再接続の流れ

Dockerネットワークに接続されたコンテナの起動と切断・再接続の流れ

 Dockerのネットワーク管理は、ただコンテナを動かすだけじゃなく、「どのネットワークに接続するか」「いつ切断するか」「再接続するか」 を制御できるのが大きなポイントです。ここでは、新しいネットワークを作成してコンテナを接続し、切断 → 再接続する流れを実際のコマンドと一緒に解説していきます。

まずは環境を整理してスッキリさせる

 一度、古いコンテナやイメージを整理しておくと後の作業が分かりやすいです。コマンドの前に実行中のコンテナがあれば、すべて停止させておきます。

docker system prune -a

 これを実行すると、停止済みコンテナや不要なイメージが削除されます。さらに、残っているボリュームも不要なら消しておくと環境がスッキリします。

ネットワークを指定したコンテナの起動

まずは専用のネットワークを作成します。

docker network create --driver=bridge ap_network

このコマンドの意味を整理すると次の通りです。

コマンド意味
dockerDockerコマンドを実行する。
network createネットワークを新規作成する。
--driver=bridgeネットワークドライバにブリッジを指定する。
ap_network作成するネットワーク名

出力結果

PS C:\Users\joeac> docker network create --driver=bridge ap_network
2e69ffa39402e0c84680dc45c8756b9dcb7e48d23479afd9ab22c5a2e1909384

これで ap_network というブリッジ型ネットワークができました。

次に、このネットワークに接続した状態でNginxコンテナを起動します。

実行例

docker run -d -p 80:80 --name=webap --net=ap_network nginx
オプション説明
-dバックグラウンドで実行する(デタッチモード)
-p 80:80ホストのポート80をコンテナのポート80にマッピングする。
--name=webapコンテナに webap という名前を付与する。
--net=ap_network作成した ap_network に接続する。
nginx使用するイメージ名。

出力結果

PS C:\Users\joeac> docker network create --driver=bridge ap_network
2e69ffa39402e0c84680dc45c8756b9dcb7e48d23479afd9ab22c5a2e1909384
PS C:\Users\joeac> docker run -d -p 80:80 --name=webap --net=ap_network nginx
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
375a694db734: Pull complete
5c32499ab806: Pull complete
5f825f15e2e0: Pull complete
08cfef42fd24: Pull complete
4f4e50e20765: Pull complete
16d05858bb8d: Pull complete
3cc5fdd1317a: Pull complete
Digest: sha256:8adbdcb969e2676478ee2c7ad333956f0c8e0e4c5a7463f4611d7a2e7a7ff5dc
Status: Downloaded newer image for nginx:latest
155486f5a0f2b8e688dac915d6e9f1a892b6664958c09d47cdbd3031d02d531f

 これで webap コンテナが ap_network に接続された状態で起動 します。ブラウザで「http://localhost」にアクセスすれば、Nginxのウェルカムページが表示されます。

Webブラウザでアクセスする

・Webブラウザを起動して、URLに「localhost」と入力します。

Nginxサーバーにアクセスできます。

ネットワーク接続の切断

コンテナとネットワークの接続を切るとどうなるでしょう?

docker network disconnect ap_network webap
コマンド意味
docker network disconnectネットワークからコンテナを切断する。
ap_network切断対象のネットワーク名
webap切断対象のコンテナ名

 これを実行すると webap は ap_network から切り離され、ブラウザからアクセスできなくなります。

出力結果

PS C:\Users\joeac> docker network disconnect ap_network webap

Webブラウザでリロード

Webブラウザでリーロードします。

Nginxサーバーに接続できなくなります。

ネットワークへの再接続

再びアクセスできるようにするには、コンテナをネットワークに戻してあげます。

docker network connect ap_network webap

このコマンドは webap を再び ap_network に接続 します。
接続が復活したら、ブラウザをリロードするとまたNginxのページが表示されるようになります。

出力結果

PS C:\Users\joeac> docker network connect ap_network webap

Webブラウザで再リロード

Webブラウザで再びリーロードします。

Nginxサーバーに再びアクセスできるようになります。

コンテナの停止とネットワーク削除

検証が終わったらコンテナを止めてネットワークを削除して片付けます。

出力結果

PS C:\Users\joeac> docker container stop webap
webap
PS C:\Users\joeac> docker network disconnect ap_network webap
PS C:\Users\joeac> docker network rm ap_network
ap_network
  • docker container stop でコンテナを停止
  • docker network disconnect でネットワークから切断
  • docker network rm でネットワーク削除

これでDocker環境をクリーンな状態に戻せます。

まとめ

  • docker run --net で最初からネットワークに接続してコンテナを起動できる。
  • docker network disconnect でネットワークから切断すると通信できなくなる。
  • docker network connect で再接続すると通信が復活する。
  • 検証が終わったら コンテナ停止 → ネットワーク削除 で環境を整理

 Dockerではネットワークの接続や切断を自由にコントロールできるので、検証やセキュリティ対策にも活用できます! 🚀