Docker超入門:コンテナをネットワークに接続・切断する手順

 Dockerでは、コンテナ同士や外部ネットワークとやり取りをするために「ネットワーク」が欠かせません。普段はデフォルトのbridgeネットワークにつながっていますが、必要に応じてコンテナを特定のネットワークに接続したり、逆に切断したりすることができます。これを理解しておくと、複数コンテナの連携や通信制御がぐっとやりやすくなりますよ。

コマンドの基本書式

コンテナとネットワークの接続や切断には、それぞれ次のコマンドを使います。

docker network disconnect [オプション] ネットワーク名 コンテナ名
docker network connect [オプション] ネットワーク名 コンテナ名
  • disconnect はネットワークから切断
  • connect はネットワークに接続

つまり、同じコンテナを「切る」「つなぐ」が簡単にできちゃうんです。

使用例と意味

実際に「ap_network」というネットワークと「webap」というコンテナを例に考えてみましょう。

接続解除

docker network disconnect ap_network webap

このコマンドの意味は「webapコンテナをap_networkから切り離す」です。

  • 切断後は webapはap_network内のコンテナと通信できなくなる
  • 他のネットワークに再接続したいときや、一時的に隔離したいときに使います

接続

docker network connect ap_network webap

このコマンドの意味は「webapコンテナをap_networkに接続する」です。

  • 接続後は webapはap_networkにいる他のコンテナと通信できる
  • 新しく追加したいコンテナを特定ネットワークに組み込みたいときに使います

オプションまとめ

それぞれのコマンドに使える代表的なオプションを表にまとめました。

オプション説明
--force, -f (disconnectのみ)コンテナが動作中でも強制的に切断する。
--ip (connectのみ)接続する際に固定IPを割り当てる。
--alias (connectのみ)ネットワーク内で利用する別名を設定する。

 オプションを組み合わせると「特定のIPを持ったサービスコンテナを追加」「動作中でもネットワーク変更」みたいな使い方ができます。

まとめ

  • disconnect でコンテナをネットワークから外すと通信ができなくなる。
  • connect でコンテナをネットワークに参加させると通信ができるようになる。
  • オプションを使うとIPや別名も指定できて便利
  • この仕組みを覚えておくと、コンテナ間通信の制御やテストがすごく楽になる。