docker BRIDGE と HOST ドライバーの違いは? 質問する

docker BRIDGE と HOST ドライバーの違いは? 質問する

違いを理解するためのガイドやグラフを教えていただけますか?

この質問をする理由は、次の方法で Web サイトを開くことができないからです。

docker network create -d bridge mybridge 
docker run -d --net mybridge --name db redis 
docker run -d --net mybridge -e DB=db -p 8000:5000 --name web chrch/web 

ただし、次の方法で Web サイトを開くことができます。

docker run --rm -d --network host --name my_nginx nginx

私は Google Cloud Platform VM インスタンスを使用し、自分で Docker をインストールします。

ベストアンサー1

によるブリッジネットワークに関する docker ドキュメント:

Docker の観点では、ブリッジ ネットワークはソフトウェア ブリッジを使用して、同じブリッジ ネットワークに接続されたコンテナーが通信できるようにしながら、そのブリッジ ネットワークに接続されていないコンテナーから分離します。

によるホストネットワークに関する docker ドキュメント

コンテナにホスト ネットワーク ドライバーを使用する場合、そのコンテナのネットワーク スタックは Docker ホストから分離されません。たとえば、ポート 80 にバインドするコンテナを実行し、ホスト ネットワークを使用する場合、コンテナのアプリケーションはホストの IP アドレスのポート 80 で利用できるようになります。

複数のコンテナをプライベートな内部ネットワークで接続してデプロイする場合は、ブリッジネットワークを使用します。ホストと同じネットワークスタックに接続されたコンテナをデプロイする場合(ホストと同じネットワークにアクセスする場合)は、ホストネットワークを使用します。いくつかのポートを公開する--publish、または-pオプション ( など)を使用してコンテナーを実行します-p 8080:80

おすすめ記事