はじめに
Docker は強力なコンテナ化プラットフォームで、アプリケーションを一貫性のある再現可能な方法でパッケージ化してデプロイすることができます。Docker の重要な機能の 1 つにネットワーキング機能があり、カスタムブリッジネットワークを作成する機能も含まれています。このチュートリアルでは、カスタム Docker ブリッジネットワークを作成し、コンテナをそれに接続する方法を学び、アプリケーションコンポーネント間の安全で効率的な通信を可能にします。
Docker ブリッジネットワークの理解
Docker コンテナは軽量で分離されるように設計されていますが、依然として互いに通信し、外部とも通信する必要があります。Docker はこの通信を容易にするためのいくつかのネットワーキングオプションを提供しており、その 1 つが Docker ブリッジネットワークです。
Docker ブリッジネットワークは、同じホスト上で実行されている Docker コンテナを接続する仮想ネットワークです。これは Docker コンテナのデフォルトのネットワークタイプであり、コンテナがコンテナ名または IP アドレスを使用して互いに通信できるようにします。
新しい Docker コンテナを起動すると、自動的に bridge という名前のデフォルトのブリッジネットワークに接続されます。このネットワークは Docker によって作成され、Docker デーモンによって管理されます。bridge ネットワークは単純なユースケースには適していますが、異なるホスト間のコンテナを簡単に接続できないなど、いくつかの制限があります。
これらの制限を克服するために、カスタム Docker ブリッジネットワークを作成することができます。カスタムブリッジネットワークにはいくつかの利点があります。
- 分離性の向上:カスタムブリッジネットワークに接続されたコンテナは、デフォルトの
bridgeネットワーク上のコンテナから分離されるため、セキュリティが向上し、意図しない相互作用のリスクが低減されます。 - コンテナリンクの容易化:同じカスタムブリッジネットワーク上のコンテナは、コンテナ名を使用して互いに通信できるため、コンテナ間通信のセットアップと管理が容易になります。
- ネットワークセグメンテーション:カスタムブリッジネットワークを使用すると、アプリケーションの異なる部分に対して別々のネットワークを作成できるため、ネットワークの整理とセキュリティが向上します。
- 拡張性の向上:カスタムブリッジネットワークを使用すると、新しいコンテナを簡単にネットワークに追加できるため、アプリケーションを拡張することができます。
カスタム Docker ブリッジネットワークを作成するには、docker network create コマンドを使用できます。カスタムネットワークが作成されたら、新しいコンテナを起動するときに --network フラグを使用するか、docker network connect コマンドを使用して既存のコンテナをネットワークに接続することで、コンテナをそれに接続できます。
graph LR
A[Docker Host] --> B[Docker Daemon]
B --> C[Default Bridge Network]
B --> D[Custom Bridge Network]
C --> E[Container 1]
C --> F[Container 2]
D --> G[Container 3]
D --> H[Container 4]
上の図では、Docker デーモンによって作成されたデフォルトの bridge ネットワークとカスタムブリッジネットワークを見ることができます。コンテナ 1 と 2 はデフォルトの bridge ネットワークに接続されており、コンテナ 3 と 4 はカスタムブリッジネットワークに接続されています。
カスタム Docker ブリッジネットワークの作成
カスタム Docker ブリッジネットワークを作成するには、docker network create コマンドを使用できます。基本的な構文は次のとおりです。
docker network create [OPTIONS] NETWORK
カスタム Docker ブリッジネットワークを作成する手順は次のとおりです。
手順 1: カスタムブリッジネットワークの作成
ターミナルを開き、次のコマンドを実行して、「my-custom-network」という名前のカスタムブリッジネットワークを作成します。
docker network create my-custom-network
これにより、デフォルト設定で新しいブリッジネットワークが作成されます。
手順 2: ネットワークの作成を確認する
docker network ls コマンドを使用して、利用可能なすべての Docker ネットワークを一覧表示できます。
docker network ls
出力には、新しい「my-custom-network」ブリッジネットワークが含まれているはずです。
手順 3: ネットワーク構成をカスタマイズする(オプション)
ネットワークを作成するときに追加のオプションを指定することで、ネットワーク構成をカスタマイズできます。たとえば、特定のサブネットとゲートウェイを持つネットワークを作成するには、次のようにします。
docker network create --subnet 172.18.0.0/16 --gateway 172.18.0.1 my-custom-network
これにより、特定のサブネットとゲートウェイを持つカスタムブリッジネットワークが作成されます。
手順 4: ネットワークの詳細を確認する
docker network inspect コマンドを使用して、カスタムネットワークの詳細を確認できます。
docker network inspect my-custom-network
これにより、サブネット、ゲートウェイ、その他の詳細を含むネットワーク構成が表示されます。
カスタム Docker ブリッジネットワークを作成することで、Docker ベースのアプリケーションの分離性、整理性、および拡張性を向上させることができます。
コンテナをカスタムネットワークに接続する
カスタム Docker ブリッジネットワークを作成した後、コンテナをそれに接続することができます。これを行う方法は 2 つあります。
1. 作成時にコンテナを接続する
新しいコンテナを起動するときに、--network フラグを指定してカスタムネットワークに接続することができます。たとえば、新しいコンテナを起動して「my-custom-network」ネットワークに接続するには、次のようにします。
docker run -d --name my-app --network my-custom-network nginx
これにより、新しい Nginx コンテナが起動し、「my-custom-network」ブリッジネットワークに接続されます。
2. 既存のコンテナを接続する
docker network connect コマンドを使用して、既存のコンテナをカスタムネットワークに接続することもできます。たとえば、「my-app」という名前の既存のコンテナを「my-custom-network」ネットワークに接続するには、次のようにします。
docker network connect my-custom-network my-app
コンテナをカスタムネットワークに接続した後、同じネットワーク上の他のコンテナから、コンテナ名またはネットワーク内の IP アドレスを使用してアクセスすることができます。
graph LR
A[Docker Host] --> B[Docker Daemon]
B --> C[Custom Bridge Network]
C --> D[Container 1]
C --> E[Container 2]
C --> F[Container 3]
上の図では、カスタムの「my-custom-network」ブリッジネットワークに接続された 3 つのコンテナを見ることができます。これらのコンテナは、コンテナ名またはネットワーク内の IP アドレスを使用して互いに通信することができます。
コンテナをカスタム Docker ブリッジネットワークに接続することで、Docker ベースのアプリケーションの分離性、整理性、および拡張性を向上させることができます。
まとめ
このチュートリアルでは、カスタム Docker ブリッジネットワークを作成し、コンテナをそれに接続し、Docker アプリケーションにカスタムネットワークを使用することの利点を活用する方法を学びました。カスタム Docker ブリッジネットワークを理解して実装することで、コンテナ化されたサービス間のセキュリティ、分離性、および通信を向上させることができ、より堅牢で拡張性の高い Docker ベースのインフラストラクチャを構築することができます。



