CodeGym /コース /Docker SELF /Docker の基本ネットワークドライバー

Docker の基本ネットワークドライバー

Docker SELF
レベル 17 , レッスン 0
使用可能

1.1 ネットワークドライバー: Bridge

Dockerネットワークドライバーは、コンテナ同士および外部ネットワークとの通信を可能にするよ。Dockerはいくつかのネットワークドライバーを提供していて、それぞれの特性があって特定の利用シナリオに適しているんだ。この講義では、4つの主要なネットワークドライバーについて話すね:bridge, host, none, overlay

BridgeネットワークドライバーはDockerのデフォルトネットワークドライバーだよ。これはプライベートな内部ネットワークを作成して、コンテナ同士が通信できるようにする機能があるんだ。このネットワークはホストの外部ネットワークとは分離されているよ。

特徴:

  • bridgeネットワークに接続されたコンテナはIPアドレスでお互い通信できるよ。
  • 外部ネットワークからはbridgeネットワーク内のコンテナに直接通信できないけど、ポートフォワーディングを設定すれば可能になるよ。
  • ローカルでの開発やテストシナリオには使いやすいね。

使用例:

ネットワークを指定せずにコンテナを作成した場合、自動的にbridgeネットワークに接続されるよ。

ターミナル

docker run -d --name my_container nginx 

ポートフォワーディングを設定するには-pフラグを使うよ。

ターミナル

docker run -d -p 8080:80 --name my_container nginx 

1.2 ネットワークドライバー Host

ネットワークドライバー host は、コンテナがホストマシンのネットワークスタックを直接使用できるようにするよ。それってつまり、コンテナがホストと同じIPアドレスを持って、ホストの全てのネットワークインターフェースを使用できるってことさ。

主な特徴:

  • ネットワークドライバー host を使用するコンテナは、ネットワーク仮想化によるオーバーヘッドが少なくてパフォーマンスが速いんだ。
  • コンテナがホストと同じネットワークインターフェースにアクセスできるから、セキュリティリスクが少し高くなるかもしれないんだ。
  • ネットワークの高性能や特定のネットワーク設定が必要な場合に適してるよ。

使用例:

ターミナル

docker run -d --network host --name my_container nginx 

1.3 ネットワークドライバー None

ネットワークドライバー none はコンテナのすべてのネットワーク機能を無効化するよ。none ネットワークに接続されたコンテナはネットワークインタフェースを持たなくて、他のコンテナやネットワークから完全に隔離されるんだ。

特徴:

  • コンテナがすべてのネットワークから完全に隔離される。
  • ネットワークが必要ないコンテナに便利、例えば、ネットワークに依存しないタスク実行用とかね。

使用例:

ターミナル

docker run -d --network none --name my_container busybox 

1.4 ネットワークドライバー Overlay

ネットワークドライバー overlay は、複数のDockerホストをまたぐ分散ネットワークを作成するために使用されるよ。このドライバーは、Docker SwarmやKubernetesでよく使われてて、異なるホスト上のコンテナ間のネットワーク通信を確保するために便利なんだ。

特徴:

  • 異なるホスト上のコンテナ間の通信を可能にする。
  • Docker Swarmのようなクラスター設定が必要。
  • 既存のネットワーク上に仮想ネットワークを作成でき、高い隔離性とセキュリティを提供する。

使用例:

overlay ドライバーを使うには、まずDocker Swarmクラスターを設定する必要があるよ。

1. Docker Swarmの初期化:

ターミナル

docker swarm init

2. overlayネットワークの作成:

ターミナル

docker network create -d overlay my_overlay_network 

3. overlay ネットワークに接続してコンテナを起動:

ターミナル

docker service create --name my_service --network my_overlay_network nginx 

1.5 ネットワークドライバーの比較

さまざまなネットワークドライバーの比較

ネットワークドライバー 分離度 パフォーマンス 適用性 特徴
bridge 高い 適度 ローカルネットワーク デフォルトで分離されたネットワーク
host 低い 高い パフォーマンス ホストとの共有されたネットワークスタック
none 完全 最高 完全分離 ネットワークから完全に分離
overlay 高い 高い 分散ネットワーク 異なるホスト上のコンテナ間の通信

ネットワークドライバーの使用

  • Bridge: コンテナが相互作用する必要があるが外部ネットワークから分離されているべき場合、ローカルアプリケーションやテスト用に使用してください。
  • Host: ネットワークの高パフォーマンスや特定のネットワーク構成が必要で、ネットワーク分離が優先されないアプリケーションに適用してください。
  • None: ネットワーク相互作用を必要としない完全に分離されたコンテナ用に使用してください。
  • Overlay: 異なるホスト上のコンテナ間の通信が必要なクラスター内で動作する分散アプリケーション用に使用してください。
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION