DockerコミュニティがWindowsでネイティブに実行されている場合、Hyper-vが必要なのはなぜですか?IE、ネイティブはDocker-EngineがWindowsで命令を実行できることを意味しませんか?Linux VMがまだ起動していて、その中で実行されているように見えます。
私には、Docker-toolboxはLinuxを実行しているOracleハイパーバイザーを使用しているのに対し、DockerコミュニティはLinuxを実行しているHyper-Vを使用しているようです。私が見落としている別の重要な違いはありますか?
これは正しいです?「ネイティブ」という単語が間違っていることを理解していますか、Dockerが単語を誤って使用していますか、それとも他に欠けている側面がありますか?
私が質問している理由は、コミュニティエディションでDocker-machineを使用していないことに気付いたからです。なぜそうなのかと思います。docker-machineはウィンドウズでちゃんと動いていますが、Docker Engineは動いていませんか?私はドッカーという言葉が多すぎて、おそらくこの場合混乱を招くと思います:)
前もって感謝します!
WindowsのDockerサポートにはいくつかのバリエーションがあります。
VirtualBox内でboot2dockerイメージを起動するDocker Machineを含むDocker Toolbox。これらは、VM内のLinuxカーネルで実行されるLinuxコンテナーです。これは、もともとWindowsユーザーの唯一のオプションでした。
LinuxKitに基づいて、Hyper-Vを使用してMoby VMを実行し、Linuxイメージを実行するDocker for Windows。LinuxKitは、コンテナーベースのLinux OSを提供し、エンドユーザーにはVMのように見えないようにするための統合がいくつかあります。Hyper-Vが利用可能で、LinuxコンテナーをWindowsで実行する場合は、これが推奨されるオプションです。
Linux OS上のLinuxコンテナーがVMを必要としないのと同じように、同じホストOSでWindowsバイナリを実行するWindows Serverコンテナー。
追加の分離のために別のVM内でWindowsバイナリを実行するHyper-Vコンテナー。
後者の2つのオプションの詳細については、Microsoftのドキュメントを参照してください。
注意する必要があるのは、2016のようなサポートされているサーバーにDocker for Windowsをインストールする場合、オプション2、3、4があり、それらを切り替えることができるということです。LinuxおよびWindowsコンテナーの場合、実行中のすべてのコンテナーとコマンドに影響を与える設定に切り替えがあります。また、Windows ServerコンテナーとHyper-Vコンテナーの間--isolation
には、docker run
コマンドラインにオプションがあります。したがって、オプション3だけが必要な場合でも、2と4をカバーするにはHyper-Vサポートが必要であると思います。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加