Update3:06.2019
コメントのいくつかは答えが明確ではないと言っています、私は明確にしようと思います。
TL; DR:
Q: WindowsコンテナーをLinuxで実行できますか?
A: いいえ、できません。
コンテナーは基盤となるオペレーティングシステムのリソースとドライバーを使用しているため、WindowsコンテナーはWindowsでのみ実行でき、LinuxコンテナーはLinuxでのみ実行できます。
Q: Docker for Windowsはどうですか?または他のVMベースのソリューション?
A: Windows用ドッカーは、あなたが実行してシミュレートすることを可能にする、Linuxの上でコンテナをWindowsのが、ボンネットの下にLinuxのVMはそう、まだ、作成されたLinuxのコンテナは、Linux上で実行されている、およびWindowsのコンテナは、Windows上で実行されています。
おまけ:WindowsでのLinux Dockerコンテナーの実行に関するこの素晴らしい記事を読んでください。
Q:では、コンテナーで実行したい場合、.Net Framework 462アプリをどうすればよいですか?
A:場合によります。いくつかの推奨事項に従います:
- 可能であれば-.Net Coreに移動してください。.Net Coreは.Net Frameworkのほとんどの主要機能をサポートするため、.Net Framework 4.8 が .Net Framework の最後のバージョンになります。
.Net Coreに移行できない場合-@Sebastianが述べたように、ライブラリを.Net Standardに変換し、.Net Framework 4.6.2と.Net Coreに1つずつ、2つのバージョンのアプリを作成できます。常に明白ですが、Visual Studioはそれを(マルチターゲティングで)かなりよくサポートしていますが、一部の依存関係には特別な注意が必要になる場合があります。
(あまりお勧めしません)場合によっては、Windowsコンテナーを実行できます。Windowsコンテナーはますます成熟しており、Kubernetesなどのプラットフォームでのサポートが向上しています。ただし、.Net Frameworkコードを実行できるようにするには、約1.4 GBを占める「Server Core」のベースイメージで実行する必要があります。同じまれなケースで、コードを.Net Coreに移行しても、イメージサイズが95 MBのWindows Nanoサーバーで実行できます。
歴史の古い更新も残す
アップデート2:08.2018
あなたはドッカー-ため、Windowsを使用している場合は、あなたが今、WindowsとLinuxコンテナの両方を実行することができ、同時に: https://blogs.msdn.microsoft.com/premier_developer/2018/04/20/running-docker-windows- and-linux-containers-simultaneously /
おまけ:質問に直接関係していませんが、Linuxコンテナー自体だけでなく、kubernetesのようなオーケストレーターも実行できるようになりました:https ://blog.docker.com/2018/07/kubernetes-is-now-available-in -docker-desktop-stable-channel /
2018年に更新:
一般的に、元の答えは右である、しかし、数ヶ月前、ドッキングウィンドウは、追加実験的な機能のLCOW(公式githubのリポジトリを)。
この投稿から:
Docker for WindowsはすでにLinuxコンテナーを実行していませんか?そのとおり。Docker for WindowsはLinuxまたはWindowsコンテナーを実行でき、Hyper-V Moby Linux VMを介したLinuxコンテナーをサポートします(Docker for Windows 17.10以降、このVMはLinuxKitに基づいています)。
LCOWでLinuxコンテナーを実行するためのセットアップは、Hyper-V Linux VMがすべてのコンテナーと共にLinux Dockerデーモンを実行する以前のアーキテクチャーよりもはるかに単純です。LCOWを使用すると、DockerデーモンはWindowsプロセスとして実行され(Docker Windowsコンテナーを実行するときと同じ)、Linuxコンテナーを起動するたびに、DockerはLinuxカーネル、runcおよびコンテナープロセスを備えたVMを実行する最小限のHyper-Vハイパーバイザーを起動します上で実行されています。
Dockerデーモンは1つしかなく、そのデーモンがWindowsで実行されるようになったため、WindowsとLinuxのDockerコンテナーを同じネットワーク名前空間で同時に実行できるようになります。これにより、Windows上のDockerユーザー向けの多くのエキサイティングな開発および本番シナリオが実現します。
元の:
@PanagiotisKanavosのコメントで述べたように、コンテナーは仮想化用ではなく、ホストコンピューターのリソースを使用しています。その結果、現時点では、WindowsコンテナはLinuxマシンで「そのまま」実行できません。
ただし、Windowsで動作するため、VMを使用して実行できます。LinuxホストにWindows VMをインストールすると、Windowsコンテナーを実行できます。
それを使用して、IMHOをPROD環境でこのように実行することは最良のアイデアではありません。
また、この回答は詳細を提供します。