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

.NET Core a Docker

Pokud máte nainstalovaný Docker, můžete takto rychle spustit ukázku .NET Core. Zkuste to:

docker run --rm microsoft/dotnet-samples

Pokud je váš Docker pro Windows v "kontejnerovém režimu Windows", můžete zkusit .NET Framework (4.x Windows Framework) takto:

docker run --rm microsoft/dotnet-framework-samples

Minulý týden jsem natočil video se zápisem, který ukazuje, jak snadné je dostat kontejnerizovanou aplikaci do Azure A levně s účtováním po sekundách.

Obrazy kontejnerů lze snadno sdílet prostřednictvím Docker Hub, Docker Store a soukromých registrů Docker, jako je Azure Container Registry. Podívejte se také na Visual Studio Tools for Docker. Všechno to spolu funguje velmi pěkně.

Líbí se mi tento citát od Richarda Landera:

Představte si, že by vám před pěti nebo tak lety někdo na přijímacím pohovoru řekl, že mu tolik záleží na konzistenci, že s aplikací vždy dodává operační systém. Pravděpodobně byste je nenajal. Přesto je to přesně ten model, který Docker používá!

A je to dobrý model! Poskytuje vám zaručenou konzistenci. "Kontejnery zahrnují aplikaci a všechny její závislosti. Aplikace spouští stejný kód bez ohledu na počítač, prostředí nebo cloud." Je to také dobrý způsob, jak zajistit, aby vaše základní .NET bylo aktuální s bezpečnostními opravami:

Docker je herní měnič pro získávání a používání aktualizací .NET. Vzpomeňte si jen na dobu před několika lety. Nejnovější .NET Framework byste si stáhli jako instalační balíček MSI na Windows a nemuseli byste jej stahovat znovu, dokud nedodáme další verzi. Rychle vpřed k dnešku. Aktualizované obrázky kontejnerů posíláme do Docker Hub několikrát za měsíc.

Obrazy .NET se sestavují pomocí oficiálních obrazů Docker, což je pěkné.

Obrazy .NET jsou vytvářeny pomocí oficiálních obrazů. Stavíme na oficiálních obrazech Alpine, Debianu a Ubuntu pro x64 a ARM. Používáním oficiálních obrazů přenecháváme náklady a složitost pravidelné aktualizace základních obrazů a balíčků operačního systému, jako je například OpenSSL, vývojářům, kteří jsou těmto technologiím nejblíže. Místo toho je náš systém sestavování nakonfigurován tak, aby automaticky sestavoval, testoval a vkládal obrazy .NET, kdykoli jsou aktualizovány oficiální obrazy, které používáme. Pomocí tohoto přístupu jsme schopni nabídnout .NET Core na více linuxových distribucích za nízkou cenu a vydat vám aktualizace během několika hodin.

Zde najdete úložiště .NET Docker Hub:

Úložiště .NET Core:

  • microsoft/dotnet – zahrnuje běhové prostředí .NET Core, sdk a obrazy ASP.NET Core.
  • microsoft/aspnetcore – zahrnuje runtime obrazy ASP.NET Core pro .NET Core 2.0 a starší verze. Použijte microsoft/dotnet pro .NET Core 2.1 a novější.
  • microsoft/aspnetcore-build – Zahrnuje ASP.NET Core SDK a node.js pro .NET Core 2.0 a starší verze. Použijte microsoft/dotnet pro .NET Core 2.1 a novější. Viz aspnet/oznámení č. 298.

Úložiště .NET Framework:

  • microsoft/dotnet-framework – zahrnuje běhové prostředí .NET Framework a obrazy sdk.
  • microsoft/aspnet – zahrnuje runtime obrazy ASP.NET pro webové formuláře ASP.NET a MVC, nakonfigurované pro IIS.
  • microsoft/wcf – zahrnuje runtime obrazy WCF nakonfigurované pro IIS.
  • microsoft/iis – zahrnuje službu IIS nad základní bitovou kopií Windows Server Core. Funguje, ale není optimalizován pro aplikace .NET Framework. Pro spouštění příslušných typů aplikací se místo toho doporučují microsoft/aspnet a microsoft/wcfrepos.

V repozitáři microsoft/dotnet je několik druhů obrázků:

  • sdk — Obrazy .NET Core SDK, které zahrnují rozhraní .NET Core CLI, běhové prostředí .NET Core a ASP.NET Core.
  • aspnetcore-runtime — Obrazy ASP.NET Core, které zahrnují běhové prostředí .NET Core a ASP.NET Core.
  • doba běhu — Běhové obrazy .NET Core, které zahrnují běhové prostředí .NET Core.
  • běhové období — Obrazy závislostí běhového prostředí .NET Core, které zahrnují pouze závislosti .NET Core a nikoli samotného .NET Core. Tento obrázek je určen pro samostatné aplikace a je nabízen pouze pro Linux. Pro Windows můžete použít základní bitovou kopii operačního systému přímo pro samostatné aplikace, protože všechny závislosti .NET Core jsou jím splněny.

Například k vytvoření aplikace použiji obrázek SDK, ale k odeslání použiji aspnetcore-runtime. Sadu SDK není třeba dodávat se spuštěnou aplikací. Chci, aby velikost mých obrázků byla co nejmenší!

Pro mě jsem dokonce vytvořil malý skript PowerShell (běží na Windows nebo Linux), který vytváří a testuje můj web Podcast (obrázek označený podcast:test) v dockeru . Všimněte si mapování objemu? Ukládá výsledky testu mimo kontejner, takže se na ně mohu podívat později, pokud budu potřebovat.

#!/usr/local/bin/powershell
docker build --pull --target testrunner -t podcast:test .
docker run --rm -v c:\github\hanselminutes-core\TestResults:/app/hanselminutes.core.tests/TestResults podcast:test

Pěkně uhlazené.

Results File: /app/hanselminutes.core.tests/TestResults/_898a406a7ad1_2018-06-28_22_05_04.trx

Total tests: 22. Passed: 22. Failed: 0. Skipped: 0.
Test execution time: 8.9496 Seconds

Přečtěte si, jak se vytvářejí, spravují a udržují obrazy .NET Core. Usnadnilo mi zprovoznění mého webu podcastu – jakmile byl ukotven – na .NET Core na Raspberry Pi (ARM32).

Nový sponzor! Již nikdy nepište fakturu! S DocSight OCR od ActivePDF budete extrahovat data z účtů, faktur, objednávek a dalších dokumentů pomocí technologie zonálního sběru dat. Dosáhněte digitální transformace ještě dnes!


Docker
  1. rozdíl mezi podmanem a dockerem.

  2. Co je Docker (a Linux kontejnery?)

  3. Kdy a proč používat Docker

  1. Jak nainstalovat .NET Core na Debian 10

  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