Kontejnery jsou krásné, pokud jste to neslyšeli. Představují pěkný a čistý způsob, jak získat spolehlivé a zaručené nasazení, bez ohledu na hostitelský systém.
Pokud chci spustit svou aplikaci ASP.NET Core, stačí zadat do příkazového řádku „docker run -p 5000:80 shanselman/demos“ a spustí se! Nemám obavy, že to nepůjde. Poběží a poběží dobře.
Někteří odpůrci kontejnerů říkají, jistě, totéž bychom mohli udělat s virtuálními stroji, ale i dnes je VHD (virtuální pevný disk) poněkud neposlušná věc a zahrnuje spoustu režie, kterou kontejner nemá. Kontejnery se dějí a měli byste je pečlivě sledovat pro svá nasazení.
Historicky však na Windows běží Linuxové kontejnery uvnitř virtuálního počítače Hyper-V. To může být dobrá nebo špatná věc, v závislosti na tom, jaké jsou vaše cíle. Spuštění kontejnerů uvnitř virtuálního počítače vám poskytuje významnou izolaci s určitou režií. To je dobré pro servery, ale méně pro můj notebook. Docker pro Windows virtuální počítač z větší části skrývá, ale je tam. Váš kontejner běží uvnitř virtuálního počítače s Linuxem, který běží v rámci Hyper-V ve vlastním Windows.
S nejnovější verzí Windows 10 (nebo 10 Server) a beta verzí Dockeru pro Windows je k dispozici nativní podpora Linux Container ve Windows. To znamená, že není zapojen žádný virtuální stroj nebo Hyper-V (pokud nechcete), takže Linux Containers běží na samotném Windows pomocí integrované podpory kontejnerů Windows 10.
Prozatím musíte přepínat „režimy“ mezi Hyper V a nativními kontejnery a nemůžete (zatím) spustit kontejnery Linux a Windows vedle sebe. Mluví se o tom, že jde jen o momentální věc a že Docker bude v určitém okamžiku podporovat paralelní běh Linuxu a Windows Containers. To je docela milé, protože to otevírá všechny druhy skvělých hybridních scénářů. Mohl bych spustit kontejner Windows Server s aplikací .NET Framework ASP.NET, která komunikuje s kontejnerem Linux se systémem Redis nebo Postgres. Mohl bych je pak všechny vložit do Kubernetes například v Azure.
Jakmile v Dockeru zapnu Linuxové kontejnery ve Windows, vše funguje a má o jednu pohyblivou část méně.
Mohu snadno a rychle spustit busybox nebo skutečné Ubuntu (ačkoli Windows 10 již podporuje Ubuntu nativně s WSL):
Ještě užitečnější je spouštět příkazový řádek Azure bez instalace! Stačí "docker run -it microsoft/azure-cli" a běží v linuxovém kontejneru.
Můžu dokonce provozovat nyancat! (Díky Thomasi!)
docker run -it supertest2014/nyan
Spekulace – těším se na den, kdy budu moci spustit „minikube start --vm-driver="windows" (nebo tak něco) a snadno lokálně nastavit vývojový systém Kubernetes pomocí nativní podpory Windows Linux Container, nikoli pomocí virtuálních strojů Hyper-V , pokud se rozhodnu.
Sponzor: Proč přijít o správu verzí vaší databáze? Je to jednodušší, než si myslíte, protože SQL Source Control propojuje vaši databázi se stejnými nástroji pro správu verzí, jaké používáte pro aplikace. Zjistit jak.