違いを理解するためのガイドやグラフを教えていただけますか?
この質問をする理由は、次の方法で 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
。