Tech Knowledge

IT技術者の知識共有を目的とした記事を書いています

Dockerのコンテナネットワークについて

Dockerでは、コンテナ同士やホストとの間で通信するために、コンテナネットワークという仕組みを利用します。コンテナネットワークは、dockerエンジンが管理する仮想的なネットワークです。dockerでは、以下のような種類のコンテナネットワークが用意されています。

  • ブリッジネットワーク(bridge): デフォルトのコンテナネットワークで、同じホスト上のコンテナ同士や、外部のネットワークと通信できます。
  • ホストネットワーク(host): ホストOSのネットワークをそのまま利用するコンテナネットワークで、パフォーマンスが重視される場合に適しています。
  • ノーンネットワーク(none): ネットワークに接続されないコンテナネットワークで、セキュリティが重視される場合に適しています。
  • オーバーレイネットワーク(overlay): 複数のホスト上に分散されたコンテナ同士を接続するコンテナネットワークで、swarmやKubernetesなどのオーケストレーションツールと連携して使用します。

また、この他にもipvlanやmacvlanといったネットワークも用意されています。

dockerでは、これらのコンテナネットワークを自由に作成したり、削除したり、切り替えたりすることができます。また、カスタムドライバやプラグインを使って、独自のコンテナネットワークを定義することも可能です。dockerのコンテナネットワークは、コンテナ型アプリケーションの開発や運用において、柔軟性や効率性を高める重要な要素です。

dockerをインストールすると自動で各種のネットワークを作成します。ネットワーク名はそれぞれ、bridge、host、noneです。デフォルトではブリッジネットワークであるbridgeが選択されるため、コンテナを作成すると意識しなくても外部ネットワークと接続できるようになっています。 新たに作成したネットワークは「ユーザ定義ネットワークと呼ばれます。なお、コンテナ名を使用してコンテナ間で名前解決をしたい場合にはデフォルトのbridgeではなくユーザー定義ネットワークに所属する必要があるため、ブリッジネットワークを作成してコンテナに接続します。

Written with Copilot