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

【Docker基礎】Dockerネットワークの作成と削除

Dockerネットワークの作成と削除

 ここでは、Dockerを使用してWordPressコンテナとMySQLコンテナを連携させるためのネットワークの作成と削除方法について詳しく解説します。これまでの章でコンテナの作成や削除、ライフサイクル管理の基本を学びましたが、次のステップとして、複数のコンテナを同時に起動し、コンテナ同士で通信する方法を習得します。特に、WordPressのようなWebアプリケーションを運用する際には、2つのコンテナ(WordPressコンテナとMySQLコンテナ)が連携して動作する必要があります。ここでは、この2つのコンテナを連携させるためのDockerネットワークの作成・削除方法について詳しく見ていきます。

Dockerネットワークの作成と削除

 WordPressコンテナとMySQLコンテナが相互に通信できるようにするためには、Dockerネットワークを作成し、両方のコンテナをそのネットワークに所属させる必要があります。ここでは、Dockerネットワークの作成・削除方法と、関連するコマンドについて詳しく解説します。

Dockerネットワークの作成

 WordPressとMySQLは、通常のコンテナでは自動的に通信できません。そのため、仮想的なネットワークを作成し、両方のコンテナをそのネットワークに接続することで、コンテナ同士の通信を可能にします。

コマンド構文

docker network create ネットワーク名

コマンドの解説

オプション説明
docker network create新しいDockerネットワークを作成します。
ネットワーク名作成するネットワークの名前です。任意の名前を指定可能。

実行例

docker network create wordpress-network

実行結果の例

PS C:\Users\joeac> docker network create wordpress-network
ba1af6d675c077849ade2b577cacce7f04a63247d8a90286e4cbbfcc2367e7b8

注意点

  • ネットワーク名の一意性: ネットワーク名は一意である必要があります。同じ名前のネットワークが既に存在する場合、エラーが発生します。
  • デフォルトネットワーク: Dockerにはデフォルトでいくつかのネットワーク(bridge、host、none)が存在しますが、カスタムネットワークを作成することで、より柔軟な通信環境を構築できます。

Dockerネットワークの一覧表示

現在存在するDockerネットワークを一覧表示するには、以下のコマンドを使用します。

コマンドの実行

docker network ls

コマンドの解説

項目説明
docker network ls現在存在するすべてのDockerネットワークを一覧表示します。

実行例

PS C:\Users\joeac> docker network ls
NETWORK ID     NAME                DRIVER    SCOPE
39f6126cb9b7   bridge              bridge    local
dafacbf63b05   host                host      local
53d52afc6f0c   none                null      local
ba1af6d675c0   wordpress-network   bridge    local

実行結果の意味

項目説明
NETWORK IDネットワークの一意な識別子。先頭12文字のみで十分です。
NAMEネットワークの名前。作成時に指定した名前が表示されます。
DRIVERネットワークドライバー。一般的にはbridgeが使用されます。
SCOPEネットワークのスコープ。通常はlocalです。

Dockerネットワークの削除

 不要になったDockerネットワークは、以下のコマンドで削除できます。ネットワークを削除する前に、そのネットワークに接続されているコンテナがないことを確認してください。

コマンドの実行

docker network rm ネットワーク名

コマンドの解説

項目説明
docker network rm指定したDockerネットワークを削除します。
ネットワーク名削除するネットワークの名前を指定します。任意の名前を指定可能。

実行例

docker network rm wordpress-network

実行結果の例

PS C:\Users\joeac> docker network rm wordpress-network
wordpress-network

注意点

  • 接続されているコンテナ: ネットワークに接続されているコンテナが存在する場合、ネットワークの削除は拒否されます。削除前に、関連するコンテナを停止・削除する必要があります。
  • デフォルトネットワークの削除: デフォルトのbridge、host、noneネットワークは削除できません。

その他のネットワーク関連コマンド

 Dockerネットワークには、作成や削除以外にもさまざまな操作が可能です。以下に、よく使用されるネットワーク関連コマンドをまとめます。

コマンド内容
connectコンテナをネットワークに接続する。
disconnectコンテナをネットワークから切断する。
createネットワークを作成する。
inspectネットワークの詳細情報を表示する。
lsネットワークの一覧を表示する。
prune現在コンテナがつながっていないネットワークをすべて削除する。
rm指定したネットワークを削除する。

コンテナをネットワークに接続する

既存のコンテナを特定のネットワークに接続するには、以下のコマンドを使用します。

docker network connect ネットワーク名 コンテナ名

実行例

docker network connect wordpress-network wordpress-site

解説

  • ネットワーク名: 接続先のネットワークの名前。
  • コンテナ名: 接続するコンテナの名前。

コンテナをネットワークから切断する

既存のコンテナを特定のネットワークから切断するには、以下のコマンドを使用します。

docker network disconnect ネットワーク名 コンテナ名

実行例

docker network disconnect wordpress-network wordpress-site

解説

  • ネットワーク名: 切断先のネットワークの名前。
  • コンテナ名: 切断するコンテナの名前。

ネットワークの詳細情報を表示する

特定のネットワークの詳細情報を表示するには、以下のコマンドを使用します。

docker network inspect ネットワーク名

実行例

docker network inspect wordpress-network

解説

  • ネットワーク名: 詳細情報を表示するネットワークの名前。
  • 出力内容: ネットワークの設定、接続されているコンテナ、IPアドレス範囲などが表示されます。

Dockerネットワークの作成におけるオプション

 通常、Dockerネットワークを作成する際には、特別なオプションを指定することはほとんどありません。しかし、必要に応じて以下のオプションを活用することができます。

オプション説明
--driver使用するネットワークドライバーを指定します。デフォルトはbridgeです。
--subnetネットワークのサブネットを指定します。例えば、192.168.1.0/24
--gatewayネットワークのゲートウェイを指定します。

使用例

docker network create --driver bridge --subnet 192.168.1.0/24 wordpress-network

解説

  • --driver bridge: ブリッジネットワークドライバーを使用してネットワークを作成します。
  • --subnet 192.168.1.0/24: ネットワークのIPアドレス範囲を指定します。

注意点

  • 通常はデフォルト設定で十分ですが、特定のネットワーク構成が必要な場合にオプションを活用します。
  • ネットワークのIPアドレス範囲が他のネットワークと重複しないように注意してください。

まとめ

 ここでは、WordPressコンテナとMySQLコンテナを連携させるためのDockerネットワークの作成と削除方法について詳しく解説しました。以下のポイントを押さえておきましょう。

  • Dockerネットワークの作成: docker network createコマンドを使用して、WordPressコンテナとMySQLコンテナが通信できる仮想ネットワークを作成します。
  • Dockerネットワークの削除: docker network rmコマンドを使用して、不要になったネットワークを削除します。削除前には、ネットワークに接続されているコンテナがないことを確認してください。
  • その他のネットワーク操作: docker network lsでネットワークの一覧を表示し、docker network inspectで詳細情報を確認します。また、docker network connectdocker network disconnectを使用して、コンテナをネットワークに接続・切断することができます。
  • ネットワークのオプション: 必要に応じて、ネットワーク作成時に--driver--subnetなどのオプションを指定することで、ネットワークの詳細な設定が可能です。

 これらの知識を基に、次のコンテンツではMySQLコンテナ起動時のオプションと引数について詳しく解説します。これにより、複数のコンテナを連携させて実用的なWebアプリケーションをDocker上で運用することが可能になります。引き続き、Dockerの学習を進めていきましょう。