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

Jak spustit aplikaci .NET v Dockeru

Docker je kontejnerizační služba, která se používá pro spouštění aplikací v izolovaných prostředích zabalených se všemi závislostmi a kódem, které potřebuje ke svému fungování. Může spouštět všechny druhy aplikací, včetně programů založených na .NET pomocí runtime obrazů od společnosti Microsoft.

Dockerizing .NET

Společnost Microsoft poskytuje předpřipravené základní obrazy pro spouštění aplikací .NET. Nebudete muset instalovat běhové prostředí .NET nebo sadu SDK do kontejneru Docker, protože můžete jednoduše rozšířit základní bitovou kopii společnosti Microsoft o verzi .NET, kterou vaše aplikace používá.

Pokud neplánujete nasadit kontejnery Windows na server Windows, budete muset používat buď .NET Core, nebo .NET 5. Starší běhové prostředí .NET Framework není multiplatformní a nepoběží na kontejnerech založených na Linuxu.

Pokud nemáte na svém vývojovém počítači nainstalovaný Docker, budete si muset nainstalovat Docker Desktop, abyste měli přístup k CLI. Pokud používáte WSL v systému Windows, budete chtít povolit modul založený na WSL 2, který poskytuje lepší výkon.

Abychom věci otestovali, vytvoříme novou aplikaci ASP.NET API. Stejný obecný postup bude platit pro jakýkoli druh aplikace, protože vše, co Docker dělá, je spouštění sestavení, kdykoli sestavujete kontejner, a spouštění aplikace pomocí příkazu vstupního bodu.

Vytvořte nový soubor s názvem Dockerfile v kořenovém adresáři vašeho projektu, kde se nachází vaše řešení. Vložte následující konfiguraci:

Z mcr.microsoft.com/dotnet/core/sdk AS build-envWORKDIR /app# Zkopírujte csproj a obnovteCOPY *.csproj ./RUN dotnet restore# Zkopírujte vše ostatní a buildCOPY . ./RUN dotnet publish -o out# Sestavení runtime imageFROM mcr.microsoft.com/dotnet/core/runtimeWORKDIR /appCOPY --from=build-env /app/out .ENTRYPOINT ["dotnet", "DockerTest.dll"] 

Tento Dockerfile stáhne bitovou kopii .NET Core SDK, aby provedl sestavení. Zkopíruje soubor .csproj přes a obnoví, poté zkopíruje vše ostatní a spustí sestavení. Poté vytvoří nový obraz z obrazu .NET Runtime a zkopíruje artefakty sestavení.

Konečně, vstupní bod je zde definován jako dotnet DockerTest.dll . Tím se spustí webový server ASP.NET, ačkoli možná budete muset změnit parametry vaší aplikace nebo zadat úplně jiný příkaz vstupního bodu.

Spuštění kontejneru můžete otestovat pomocí docker container run , předejte jej v ID kontejneru sestavení:

kontejner ukotvovacího zařízení spustit containerid

U aplikace ASP.NET budete muset otevřít porty namapováním portu na hostiteli na port na kontejneru:

docker run -p 80:80 containerid

Můžete si přečíst našeho průvodce prací s Docker a Dockerfiles, kde se dozvíte více.


Docker
  1. Jak spustit program uvnitř kontejneru Docker?

  2. Jak připojit kontejnery Docker

  3. Jak spustit příkaz na spuštěném kontejneru Docker

  1. Jak přepsat vstupní bod pomocí Docker Run

  2. Jak spustit MySQL v kontejneru Docker

  3. Jak nainstalovat Docker a spustit kontejnery Docker v Ubuntu

  1. Jak nasadit a spustit Redis v Dockeru

  2. Jak nainstalovat Docker na Raspberry Pi

  3. Jak optimalizovat výkon Dockeru