Visual Studio Dockerツールを使用してプロジェクトの開発環境を設定しようとしています。Docker for windows:linuxとwindowsコンテナ間の通信
私は、RabbitMqを介して通信している.netコアベースといくつかのフルfxマイクロサービスを持っています。 RabbitMqはLinuxベースのドッカーコンテナの内部にあり、.netコアマイクロサービスも同様であり、ドッカー作成ファイルで同じネットワークに接続されています。 .Netコアのマイクロサービスは、コンテナ名をホスト名として使用してRabbitMqに接続することに問題はありません。
Windowsベースのコンテナに関しては、ウィンドウとLinuxドッカーエンジンの間でネットワークが共有されないため、コンテナ名を使用してウィンドウベースのマイクロサービスをRabbitMqサービスに接続できません開発マシンにとっては弱いです。なぜなら、これは他の開発者にとっては異なるため、設定上のオーバーヘッドをもたらすからです。
AFAIK swarmモードは、そのような通信を確実にするために使用できますが、テスト/プロダクト環境に適しています。また、Visual Studioコンテナのデバッグ機能が失われてしまいます(docker-compose )。
したがって、単一ホスト上の混在システムのインターコンテナ通信の最良の方法は何ですか?
LinuxマシンとWindowsコンテナを1台のマシンで実行できるかどうかはわかりませんでした。 RabbitMQドッカーコンテナーのIPが名前に設定されている 'hosts'ファイルを作成できますか?例えば、Docker Toolboxを使うと、 'hosts'に次のように書くことができます:192.168.99.100 docker次に、各開発者がIPを設定し、ドッカーの作成がその名前を使用できるようになります。 – Boggin
ホストファイル操作のトリック。それでもいくつかの事前設定が必要ですが、IPのハードコーディングよりもはるかに優れています。ネイティブが何もポップアップしないなら、私はこれと一緒に行くでしょう。ありがとう! – liri2006
同じマシンにLinuxとWindows Docker Enginesを混在させることはできないと言っているSO Q&Asがあります:[同じドッカーエンジンホストでLinuxベースとWindowsベースのコンテナを混在させることはできますか?](https://stackoverflow.com/ q/41010604/444244)おそらく、それらをあなたの戦略で更新できますか? – Boggin