DockerにLinuxコンテナーの代わりにWindowsコンテナーを使用することの長所と短所は?


36

Windows 10にDocker for Windows(CE)をインストールしていますが、最初の画面で次の質問が表示されます。

[] Linuxコンテナの代わりにWindowsコンテナを使用します(これはインストール後に変更できます)

これは重要な決定のように思えますがDockerのドキュメントFAQ、およびWindowsコンテナーチュートリアルでは、なぜ私がどちらを選択するのについての情報を提供していません。

この選択の影響の客観的な概要を把握しておくと役立ちます。

  • 1つのオプションは他のオプションよりも高速ですか?
  • この決定は、システムリソース(RAM、CPU)の使用に影響しますか?
  • 両方のタイプで同じ画像を実行できますか?
  • 一方は他方より安全ですか?

私が結論に達するのに役立つかもしれない他の区別は非常に歓迎されるでしょう。


これに対する答えは意見に基づいていません。そしてそれは受け入れられます。これを閉じる必要はありません。
ニルス

回答:


19

WindowsコンテナにはWindowsホストを使用する必要がありますが、LinuxコンテナにはLinuxホストまたはWindowsホストを使用できます。2018年4月以降、両方を並行して実行することもできます

1つのオプションは他のオプションよりも高速ですか?

いいえ。何で速くなりますか?

この決定は、システムリソース(RAM、CPU)の使用に影響しますか?

WindowsはLinuxよりも多くのリソースを使用します-Windows Nanoは入手可能な限り小さい

両方のタイプで同じ画像を実行できますか?

いいえ。モノラルコンテナで.NETアプリを実行できますが、LinuxホストでWindowsコンテナを起動することはできません。逆も同様です。仮想化とは異なります。

一方は他方より安全ですか?

繰り返しますが、より安全なのは何ですか?いいえ。どちらもネイティブDockerを実行するため、hyper-vとVMware、LinuxとWindowsのようなものではないため、.net、python、java、rubyなどを実行するものに依存します。


2
次にこれ。読み取りはこの答えを補完するcontainerjournal.com/2016/10/28/…–
A.Newgate

4
Linuxコンテナを使用することを選択した場合、DockerはHyper-V Linux VMを起動してコンテナを実行します。それ以外の場合、Windowsコンテナをネイティブに実行しますか?そして、両方のタイプのコンテナを同時に実行することはできませんか?
ダンカンジョーンズ

1
Windows 10用のdockerを使用すると、これを行うことができます-しかし、実
稼働環境では

Dockerはlxc(Linux)に基づいています-Dockerホストと同じカーネルを使用します。lxcでWindowsを起動する場合、winを仮想化またはエミュレートする必要があります。winはlinuxをサポートしているため、同じことがwin-dockerにも当てはまるかどうかわかりません。
ニルス

1
@DuncanJones、あなたが尋ねたわずか3日後に、MSDNで、WindowsコンテナとLinuxコンテナを並行して実行できることを説明するブログ投稿がありました。
ジョナスハイデルベルク
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.