TL;DR:
Otázka: Mohou kontejnery Windows běžet na Linuxu?
Odpověď: Ne. Nemohou.
Kontejnery využívají základní zdroje operačního systému a ovladače, takže kontejnery Windows mohou běžet pouze v systému Windows a kontejnery Linux pouze v systému Linux.
Otázka: Ale co Docker pro Windows? Nebo jiná řešení založená na VM?
Odpověď: Docker pro Windows umožňuje simulovat běh Linuxu kontejnery v systému Windows , ale pod kapotou je vytvořen virtuální počítač s Linuxem, takže stále Linuxové kontejnery běží na Linuxu a kontejnery Windows běží na Windows .
Bonus:Přečtěte si tento velmi pěkný článek o spouštění linuxových dokovacích kontejnerů ve Windows.
Otázka: Co mám tedy dělat s aplikací .NET Framework 462, pokud chci běžet v kontejneru?
Odpověď: Záleží. Zvažte následující doporučení:
-
Pokud je to možné, přejděte na .NET Core. Protože .NET Core přináší podporu většiny hlavních funkcí .NET Framework, a .NET Framework 4.8 bude poslední verzí .NET frameworku
-
Pokud nemůžete migrovat na .NET Core – jak zmínil @Sebastian – můžete své knihovny převést na .NET Standard a mít dvě verze aplikace – jednu na .NET Framework 4.6.2 a jednu na .NET Core – je to ne vždy zřejmé. Visual Studio to docela dobře podporuje (s vícenásobným cílením), ale některé závislosti mohou vyžadovat zvláštní péči.
-
(Méně doporučeno) V některých případech můžete spustit kontejnery Windows. Kontejnery Windows jsou stále vyspělejší a mají lepší podporu na platformách, jako je Kubernetes. Ale abyste mohli spouštět kód .NET Framework, musíte stále běžet na základním obrazu "Server Core", který zabírá asi 1,4 GB. Ve stejných ojedinělých případech můžete migrovat svůj kód do .NET Core, ale stále jej můžete spustit na serveru Windows Nano s velikostí obrázku 95 MB.
Ponechání také starých aktualizací pro historii
Aktualizace 2:8. 2018
Pokud používáte Docker-for-Windows, můžete nyní spouštět kontejnery Windows i Linux současně :Současné spuštění kontejnerů Docker Windows a Linux
Bonus: S otázkou přímo nesouvisí, ale nyní můžete spustit nejen samotný linuxový kontejner, ale také orchestrátor, jako je Kubernetes:Kubernetes je nyní k dispozici ve stabilním kanálu Docker Desktop
Aktualizováno v roce 2018:
Původní odpověď je obecně správná, ALE Před několika měsíci přidal Docker experimentální funkci LCOW (oficiální úložiště GitHub).
Z tohoto příspěvku:
Neprovozuje již Docker pro Windows kontejnery Linux? To je pravda. Docker pro Windows může spouštět kontejnery Linux nebo Windows s podporou kontejnerů Linux prostřednictvím virtuálního počítače Hyper-V Moby Linux (od Dockeru pro Windows 17.10 je tento virtuální počítač založen na LinuxKit).
Nastavení pro spouštění linuxových kontejnerů s LCOW je mnohem jednodušší než předchozí architektura kde virtuální počítač Hyper-V Linux spouští Linux Dockerdaemon spolu se všemi vašimi kontejnery. S LCOW se démon Docker spouští jako proces Windows (stejně jako při spuštění kontejnerů Docker Windows) a pokaždé, když spustíte kontejner Linux, Docker spustí minimální hypervizor Hyper-V s virtuálním počítačem s linuxovým jádrem, runc a kontejnerovými procesy běžícími nahoře.
Protože existuje pouze jeden démon Docker a protože tento démon nyní běží na Windows, bude brzy možné spouštět kontejnery Windows a LinuxDocker vedle sebe ve stejném síťovém jmenném prostoru . Uživatelům Dockeru ve Windows se tak odemkne spousta zajímavých vývojových a produkčních scénářů.
Původní:
Jak bylo zmíněno v komentářích @PanagiotisKanavos, kontejnery nejsou pro virtualizaci a využívají zdroje hostitelského počítače . V důsledku toho prozatím kontejner Windows nemůže běžet „tak, jak je“ na počítači se systémem Linux.
Ale - můžete to udělat pomocí VM - jak to funguje ve Windows. Na hostitele Linuxu můžete nainstalovat virtuální počítač s Windows, který umožní spouštět kontejnery Windows.
S tím to IMHO provozuje tímto způsobem v produkci prostředí nebude nejlepší nápad.
Tato odpověď také poskytuje další podrobnosti.
Ne, kontejnery Windows nemůžete spouštět přímo v Linuxu.
Ale můžete spustit Linux na Windows.
Windows Server 2016 je dodáván se základní bitovou kopií operačního systému Ubuntu (po aktualizaci beta aktualizace ze září 2016 ). To je důvod, proč můžete Linux provozovat na Windows a ne jinak. Podívejte se zde. Kontejnery Linuxu by konečně mohly běžet ve Windows s LinuxKit od Docker
Mezi kontejnery OS Linux a Windows můžete přepínat kliknutím pravým tlačítkem na Docker v nabídce na hlavním panelu.