GNU/Linux >> Znalost Linux >  >> Panels >> Docker

.NET a Docker

.NET a .NET Core (a Windows!) jsou s Dockerem stále lepší a lepší. Spouštím Docker pro Windows, protože podporuje kontejnery Linux i kontejnery Windows. Mají stabilní i okrajový kanál. Kanál Edge (Beta) je pravidelně aktualizován a za rok, co ho provozuji, se zpravidla zlepšuje a zlepšuje.

Jako trochu nesouvisející poznámku na okraj uvádím, že na svém Synology NAS používám také Docker s řadou kontejnerů a také .NET Core (můj Nas je čip Intel), Minecraft Server, Plex Server a CrashPlan.

POZNÁMKA: Docker pro Windows vyžaduje 64bitový Windows 10 Pro a Microsoft Hyper-V. Úplný seznam nezbytných podmínek naleznete v části Co je třeba vědět před instalací.

Tým .NET ve společnosti Microsoft dává své dockerfiles do pořádku a organizace. Může to vypadat zpočátku opak, se spoustou tajemných značek a jmen, ale existuje jasná metoda, o které si můžete přečíst zde.

Zveřejňují své obrázky Docker v několika různých úložištích na Docker Hub. Je důležité rozdělit obrázky, aby se daly snáze najít, a to jak na webu Docker Hub, tak pomocí docker search příkaz.

  • microsoft/dotnet — .NET Core Runtime a obrazy SDK pro Linux a Nano Server.
  • microsoft/aspnetcore – bitové kopie ASP.NET Core pro Linux a Nano Server.
  • microsoft/aspnetcore-build – bitové kopie ASP.NET Core pro Linux a Nano Server, určené pro vytváření aplikací.
  • microsoft/dotnet-framework — obrazy .NET Framework 3.5 a 4.6.2 pro Windows Server Core.
  • microsoft/aspnet – .NET Framework 3.5 a 4.6.2 Obrazy ASP.NET pro Windows Server Core.

Některé ukázky jsou také na:

  • microsoft/dotnet-samples – ukázky .NET Core.
  • microsoft/dotnet-framework-samples — ukázky .NET Framework.

Ukázky lze velmi snadno vyzkoušet – PŘESTAŇTE ČÍT A VYZKOUŠEJTE TEĎ.;)

Vždy na mě udělá dojem pěkný asynchronní ASCII Progress bar. Je snadné na mě udělat dojem. Toto je ukázka "ahoj světe" s překvapením ASCII art. Nebudu vám to kazit.

C:\Users\scott\Desktop> docker run microsoft/dotnet-samples
Unable to find image 'microsoft/dotnet-samples:latest' locally
latest: Pulling from microsoft/dotnet-samples
10a267c67f42: Downloading [========> ] 9.19MB/52.58MB
7e1a7ec87c21: Downloading [======================> ] 10.8MB/18.59MB
923d0cd2ed37: Download complete
7c523004cf83: Downloading [=========> ] 6.144MB/33.07MB
f3582118a43a: Waiting
c27ef6b597a0: Waiting

Všechny obrázky jsou spravovány a udržovány na GitHubu, takže se můžete zapojit, pokud obrázky nebo soubory nepřekopáváte.

Jedna zajímavá věc, kterou je třeba zdůraznit, je rozdíl mezi dev image a produkčními obrazy a také obrazy, které byste použili v situacích CI/CD (Build Server) k vytvoření jiných obrazů. Zde je několik příkladů z GitHubu:

Vývoj

  • dotnetapp-dev – Tato ukázka je vhodná pro vývoj a sestavení, protože se opírá o image .NET Core SDK. Provádí dotnet příkazy vaším jménem, ​​čímž se zkrátí čas potřebný k vytvoření obrazů Docker (za předpokladu, že provedete změny a poté je iterativně otestujete v kontejneru).

Produkce

  • dotnetapp-prod – Tato ukázka je vhodná pro produkci, protože se opírá o bitovou kopii .NET Core Runtime, nikoli o větší bitovou kopii .NET Core SDK. Většina aplikací potřebuje pouze runtime, čímž se zmenšuje velikost obrazu vaší aplikace.
  • dotnetapp-selfcontained – Tato ukázka je také vhodná pro produkční scénáře, protože se spoléhá na bitovou kopii operačního systému (bez .NET Core). Samostatné aplikace .NET Core zahrnují .NET Core jako součást aplikace a nikoli jako centrálně instalovanou komponentu v základní bitové kopii.
  • dotnetapp-current – ​​Tato ukázka ukazuje, jak nakonfigurovat aplikaci pro použití obrazu .NET Core 1.1. Jak .csproj, tak Dockerfile byly aktualizovány, aby závisely na .NET Core 1.1. Tato ukázka je stejná jako dotnetapp-prod s výjimkou spoléhání se na novější verzi .NET Core.
  • aspnetapp – tato ukázka demonstruje dockerizovanou webovou aplikaci ASP.NET Core

Ve VS Code, Visual Studio 2017 a Visual Studio pro Mac (kanál Preview) je skvělá podpora Dockeru. S VS a Docker na Windows můžete dokonce F5 (ladit) do linuxového kontejneru.

Někteří z vás mohou mít aplikace .NET Framework spuštěné ve virtuálních počítačích, které byste rádi přesunuli do kontejnerové infrastruktury. Existuje nástroj s názvem Image2Docker, který Docker spravuje a který může pomoci. Pomáhá migrovat virtuální počítače do kontejnerů. Podívejte se na přednášku Image2Docker DockerCon nebo si přečtěte Docker’s Convert ASP.NET Web Servers to Docker with ImageDocker, kde se dozvíte více.

„Kontejnerová loď“ od Národní oceánská služba NOAA je licencován pod CC BY 2.0

Sponzor: Vyzkoušejte Seq:jednoduché centralizované protokolování ve vaší infrastruktuře se skvělou podporou pro ASP.NET Core a Serilog. Stáhněte si verzi 4.0.


Docker
  1. Jak nainstalovat .NET Core na Debian 10

  2. rozdíl mezi podmanem a dockerem.

  3. Co je Docker (a Linux kontejnery?)

  1. Kdy a proč používat Docker

  2. Nainstalujte Docker a WordPress na Ubuntu

  3. Proč Deis a co to je?

  1. Zjištění, že aplikace .NET Core běží v kontejneru Docker a SkippableFacts v XUnit

  2. Optimalizace velikostí obrazu ASP.NET Core Docker

  3. .NET core X509Store na linuxu