【Docker基礎】ネットワーク関連コマンド

 Docker では、コンテナ同士を通信させたり、ホストや外部サービスと連携するために ネットワーク という概念を使います。ネットワークを自分で作成し、どのコンテナがどのネットワークに接続するかを柔軟に制御することで、セキュアかつ分離された通信を行うことが可能です。
 ここでは、そうした Docker ネットワーク を管理するためのコマンド「docker network」と、その代表的な副コマンドについて紹介します。


ネットワーク操作の基本構文

Docker ネットワークに関連する操作は、以下の形式で行います。

docker network <副コマンド> [オプション]

  • 上位コマンドnetwork
  • 副コマンド: connect / disconnect / create / inspect / ls / prune / rm など
  • オプション: ネットワークやコンテナを細かく指定する際に利用(例: ほとんど使わない)

 ネットワーク関連のコマンドは省略形がなく、docker network connect のようにフルの形で入力するのが基本です。

ネットワーク操作関連コマンド一覧

 以下に、代表的な Docker ネットワーク関連の副コマンドとその内容、主なオプションをまとめました。

副コマンド内容省略主なオプション
connectコンテナをネットワークに接続する。同じネットワーク上のコンテナ同士はプライベートIPを使って通信できる。不可あまり指定しない
disconnectコンテナをネットワークから切断する。不要になったコンテナを切り離すことで通信を遮断可能。不可あまり指定しない
create新しいネットワークを作成する。ユーザーが用途に応じてカスタムネットワークを作ることでセキュアに分割できる。不可あまり指定しない
inspectネットワークの詳細情報を表示する。どのコンテナが接続しているか、ドライバの種類などを確認可能。不可あまり指定しない
lsネットワークの一覧を表示する。Docker が自動生成した network も含めて、既存のものが一覧できる。不可あまり指定しない
prune使用されていないネットワークを一括削除する。どのコンテナにも接続されていないネットワークが対象。不可あまり指定しない
rm指定したネットワークを削除する。コンテナがつながっている場合は削除不可。先にコンテナを disconnect する。不可あまり指定しない

コマンドの使用例

1.ネットワークの作成:docker network create

docker network create my-network
  • 意味my-network という名前のネットワークを新規作成
  • ポイント
    ・デフォルトドライバ (bridge など) が使われる。
    ・特定のドライバやサブネットなどを指定したい場合は追加オプションを使う。

2.ネットワークにコンテナを接続:docker network connect

docker network connect my-network my-container
  • 意味my-containermy-network に接続
  • ポイント
    ・同じネットワークに接続されたコンテナ同士は内部 IP で通信できる。
    ・すでに起動中のコンテナにも動的にネットワークを追加可能

3.ネットワークの一覧表示:docker network ls

docker network ls
  • 意味: 存在するネットワークを一覧表示
  • ポイント
    bridge, host, none など、Docker がデフォルトで作成するネットワークも含まれる。
    ・自分が create したネットワークも一覧でわかる。

4.ネットワーク情報を確認:docker network inspect

docker network inspect my-network
  • 意味my-network の詳細情報を JSON 形式で表示
  • ポイント
    ・どのコンテナが接続中か、IP アドレスなどを確認できる。
    ・トラブルシューティング時に便利

5.使われていないネットワークを削除:docker network prune

docker network prune
  • 意味: 現在どのコンテナにも使われていないネットワークを一括削除
  • ポイント
    ・「本当に削除しますか?」という確認が出る場合がある。
    ・不要なネットワークが大量にある場合にディスクや設定を整理できる。

6.特定ネットワークを削除:docker network rm

docker network rm my-network
  • 意味my-network を削除
  • ポイント
    ・もしコンテナが接続中の場合、先に disconnect する必要がある。
    ・削除後はそのネットワーク上の通信ができなくなるため注意

まとめ

  • docker network + 副コマンド でネットワークを作成・操作・削除
  • 仮想ネットワークを切り分けることで、コンテナごとに通信経路を分けたり、プライベートに連携したりが可能
  • 代表的な副コマンド: connect / disconnect / create / inspect / ls / prune / rm
  • 省略形なし: docker network <コマンド> というフル形のみ

 Docker のネットワークを使うと、複数コンテナを同じネットワーク上に置いて自由に通信させたり、コンテナを切り離してセキュアな構成を作ったりできます。次のステップでは、これらのネットワークコマンドを実際に活用したサンプル構成なども試して、Docker のネットワーク世界を深く理解していきましょう。