カスタム Docker ブリッジネットワークの作成方法

DockerDockerBeginner
オンラインで実践に進む

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

Docker は強力なコンテナ化プラットフォームで、アプリケーションを一貫性のある再現可能な方法でパッケージ化してデプロイすることができます。Docker の重要な機能の 1 つにネットワーキング機能があり、カスタムブリッジネットワークを作成する機能も含まれています。このチュートリアルでは、カスタム Docker ブリッジネットワークを作成し、コンテナをそれに接続する方法を学び、アプリケーションコンポーネント間の安全で効率的な通信を可能にします。

Docker ブリッジネットワークの理解

Docker コンテナは軽量で分離されるように設計されていますが、依然として互いに通信し、外部とも通信する必要があります。Docker はこの通信を容易にするためのいくつかのネットワーキングオプションを提供しており、その 1 つが Docker ブリッジネットワークです。

Docker ブリッジネットワークは、同じホスト上で実行されている Docker コンテナを接続する仮想ネットワークです。これは Docker コンテナのデフォルトのネットワークタイプであり、コンテナがコンテナ名または IP アドレスを使用して互いに通信できるようにします。

新しい Docker コンテナを起動すると、自動的に bridge という名前のデフォルトのブリッジネットワークに接続されます。このネットワークは Docker によって作成され、Docker デーモンによって管理されます。bridge ネットワークは単純なユースケースには適していますが、異なるホスト間のコンテナを簡単に接続できないなど、いくつかの制限があります。

これらの制限を克服するために、カスタム Docker ブリッジネットワークを作成することができます。カスタムブリッジネットワークにはいくつかの利点があります。

  1. 分離性の向上:カスタムブリッジネットワークに接続されたコンテナは、デフォルトの bridge ネットワーク上のコンテナから分離されるため、セキュリティが向上し、意図しない相互作用のリスクが低減されます。
  2. コンテナリンクの容易化:同じカスタムブリッジネットワーク上のコンテナは、コンテナ名を使用して互いに通信できるため、コンテナ間通信のセットアップと管理が容易になります。
  3. ネットワークセグメンテーション:カスタムブリッジネットワークを使用すると、アプリケーションの異なる部分に対して別々のネットワークを作成できるため、ネットワークの整理とセキュリティが向上します。
  4. 拡張性の向上:カスタムブリッジネットワークを使用すると、新しいコンテナを簡単にネットワークに追加できるため、アプリケーションを拡張することができます。

カスタム 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 ベースのインフラストラクチャを構築することができます。