DockerコンテナがホストOSのカーネルを使える理由をおしえて下さい


DockerとVMと何が違うのかを調べていたところ、VMはOSを含めて動作する一方でDockerコンテナはホストOSのカーネルを使うことができ、それ以外に必要となるライブラリやアプリがDockerコンテナに含まれるという風に把握しました。

そこでタイトルのような疑問が浮かんできました。  
OSのカーネルはOSごとに違うはずです、ホストOSがWindowsでDockerコンテナ上でLinuxを動かす場合に、Windowsのカーネルを使ってLinuxを動かすということになります。  
WindowsのカーネルでLinuxを動かすことができるのでしょうか？  
これがどうしてこういうことができるのかをぐぐったのですが、答えが得られませんでした。

DockerコンテナがホストOSのカーネルを使える理由をおしえて下さい。  
この質問の目的としては、DockerとVMの違いを把握することなので、  
もしこの質問の意図がとんちんかんであれば、そちらを汲み取って案内いただけると助かります。

よろしくお願いします。




> ホストOSがWindowsでDockerコンテナ上でLinuxを動かす場合に、Windowsのカーネルを使ってLinuxを動かすということになります。

「ホストOSがWindowsでDockerコンテナ上でLinuxを動かす場合」というのがDocker for Windowsを指すものと解釈して回答します。

Docker for Windowsはいまのところ、WindowsのHyper-
VのVM上でLinuxを動かして、その中でLinuxのコンテナを動かすものです。Windowsのカーネルを使ってLinuxを動かすわけではありません。

