Spuštění aplikace ASP.NET Core v kontejnerech Dockeru
Poznámka:
Toto není nejnovější verze tohoto článku. Aktuální verzi najdete ve verzi .NET 8 tohoto článku.
Upozorňující
Tato verze ASP.NET Core se už nepodporuje. Další informace najdete v tématu .NET a .NET Core Zásady podpory. Aktuální verzi najdete ve verzi .NET 8 tohoto článku.
Důležité
Tyto informace se týkají předběžného vydání produktu, který může být podstatně změněn před komerčním vydáním. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Aktuální verzi najdete ve verzi .NET 8 tohoto článku.
Tento článek ukazuje, jak spustit aplikaci ASP.NET Core v kontejnerech Dockeru.
Windows Home Edition nepodporuje Technologii Hyper-V a pro Docker je potřeba Technologie Hyper-V.
Informace o kontejnerizované aplikaci .NET s publikováním dotnetu najdete v tématu Kontejnerizace aplikace .NET s dotnet publish
.
ASP.NET core imagí Dockeru
Pro účely tohoto kurzu si stáhnete ukázkovou aplikaci ASP.NET Core a spustíte ji v kontejnerech Dockeru. Ukázka funguje s kontejnery Linuxu i Windows.
Ukázkový soubor Dockerfile používá funkci sestavení dockeru s více fázemi k sestavení a spuštění v různých kontejnerech. Sestavení a spouštění kontejnerů se vytváří z imagí, které poskytuje Docker Hub od Microsoftu:
dotnet/sdk
Ukázka používá tento obrázek k sestavení aplikace. Image obsahuje sadu .NET SDK, která obsahuje nástroje příkazového řádku (CLI). Image je optimalizovaná pro místní vývoj, ladění a testování jednotek. Díky nástrojům nainstalovaným pro vývoj a kompilaci je image relativně velká.
dotnet/aspnet
Ukázka používá tuto image ke spuštění aplikace. Image obsahuje modul runtime ASP.NET Core a knihovny a je optimalizovaný pro spouštění aplikací v produkčním prostředí. Tato image je navržená pro rychlost nasazení a spuštění aplikace relativně malá, takže výkon sítě z Registru Dockeru na hostitele Dockeru je optimalizovaný. Do kontejneru se zkopírují jenom binární soubory a obsah potřebný ke spuštění aplikace. Obsah je připravený ke spuštění a umožňuje nejrychlejší čas od
docker run
spuštění aplikace. V modelu Dockeru není nutná dynamická kompilace kódu.
Požadavky
Stažení ukázkové aplikace
Stáhněte si ukázku klonováním úložiště .NET Docker:
git clone https://github.com/dotnet/dotnet-docker
Místní spuštění aplikace
Přejděte do složky projektu na adrese dotnet-docker/samples/aspnetapp/aspnetapp.
Spuštěním následujícího příkazu sestavte a spusťte aplikaci místně:
dotnet run
Přejděte do
http://localhost:<port>
prohlížeče a otestujte aplikaci.Stisknutím ctrl+C na příkazovém řádku aplikaci zastavte.
Spuštění v kontejneru Linuxu nebo kontejneru Windows
Pokud chcete spustit v kontejneru Linuxu, klikněte pravým tlačítkem myši na ikonu klienta Dockeru na hlavním panelu a vyberte přepnout na kontejnery Linuxu.
Pokud chcete spustit v kontejneru Windows, klikněte pravým tlačítkem myši na ikonu klienta Dockeru na hlavním panelu a vyberte přepínač na kontejnery Windows.
Přejděte do složky Dockerfile v dotnet-docker/samples/aspnetapp.
Spuštěním následujících příkazů sestavte a spusťte ukázku v Dockeru:
docker build -t aspnetapp . docker run -it --rm -p <port>:8080 --name aspnetcore_sample aspnetapp
Argumenty
build
příkazu:- Pojmenujte image aspnetapp.
- Vyhledejte soubor Dockerfile v aktuální složce (tečka na konci).
Argumenty příkazu spustit:
- Přidělte pseudo-TTY a nechte ho otevřené, i když není připojeno. (Stejný účinek jako
--interactive --tty
.) - Při ukončení kontejneru automaticky odeberte.
- Namapujte
<port>
na místním počítači port 8080 v kontejneru. - Pojmenujte kontejner aspnetcore_sample.
- Zadejte image aspnetappu.
Přejděte do
http://localhost:<port>
prohlížeče a otestujte aplikaci.
Ruční sestavení a nasazení
V některých scénářích můžete chtít nasadit aplikaci do kontejneru zkopírováním prostředků potřebných za běhu. Tato část ukazuje, jak nasadit ručně.
Přejděte do složky projektu na adrese dotnet-docker/samples/aspnetapp/aspnetapp.
Spusťte příkaz dotnet publish:
dotnet publish -c Release -o published
Argumenty příkazu:
- Sestavte aplikaci v režimu vydání (výchozí režim ladění).
- Vytvořte prostředky v publikované složce.
Spustit aplikaci.
Windows:
dotnet published\aspnetapp.dll
Linux:
dotnet published/aspnetapp.dll
Přejděte na
http://localhost:<port>
home stránku.
Pokud chcete použít ručně publikovanou aplikaci v kontejneru Dockeru, vytvořte nový soubor Dockerfile a pomocí docker build .
příkazu sestavte image.
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS runtime
WORKDIR /app
COPY published/ ./
ENTRYPOINT ["dotnet", "aspnetapp.dll"]
Pokud chcete nový obrázek zobrazit, použijte docker images
tento příkaz.
Soubor Dockerfile
Tady je soubor Dockerfile používaný příkazem docker build
, který jste spustili dříve. dotnet publish
Používá stejný způsob, jakým jste to udělali v této části k sestavení a nasazení.
# https://hub.docker.com/_/microsoft-dotnet
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /source
# copy csproj and restore as distinct layers
COPY *.sln .
COPY aspnetapp/*.csproj ./aspnetapp/
RUN dotnet restore
# copy everything else and build app
COPY aspnetapp/. ./aspnetapp/
WORKDIR /source/aspnetapp
RUN dotnet publish -c release -o /app --no-restore
# final stage/image
FROM mcr.microsoft.com/dotnet/aspnet:8.0
WORKDIR /app
COPY --from=build /app ./
ENTRYPOINT ["dotnet", "aspnetapp.dll"]
V předchozím souboru Dockerfile *.csproj
se soubory zkopírují a obnoví jako odlišné vrstvy. docker build
Když příkaz sestaví image, použije integrovanou mezipaměť. Pokud se *.csproj
soubory od posledního docker build
spuštění příkazu nezměnily, dotnet restore
příkaz se nemusí spustit znovu. Místo toho se znovu použije integrovaná mezipaměť pro odpovídající dotnet restore
vrstvu. Další informace najdete v tématu Osvědčené postupy pro zápis souborů Dockerfile.
Další materiály
- Kontejnerizace aplikace .NET s publikováním dotnet
- Příkaz docker buildu
- Příkaz Docker Run
- ASP.NET ukázku Core Dockeru (ta, která se používá v tomto kurzu.)
- Konfigurace ASP.NET Core pro práci s proxy servery a nástroji pro vyrovnávání zatížení
- Práce s nástroji Visual Studio Docker Tools
- Ladění pomocí editoru Visual Studio Code
- GC s využitím Dockeru a malých kontejnerů
- System.IO.IOException: Byl dosažen nakonfigurovaný limit uživatele (128) počtu inotify instancí.
- Aktualizace imagí Dockeru
Další kroky
Úložiště Git, které obsahuje ukázkovou aplikaci, obsahuje také dokumentaci. Přehled prostředků dostupných v úložišti najdete v souboru README. Konkrétně se dozvíte, jak implementovat HTTPS:
ASP.NET core imagí Dockeru
Pro účely tohoto kurzu si stáhnete ukázkovou aplikaci ASP.NET Core a spustíte ji v kontejnerech Dockeru. Ukázka funguje s kontejnery Linuxu i Windows.
Ukázkový soubor Dockerfile používá funkci sestavení dockeru s více fázemi k sestavení a spuštění v různých kontejnerech. Sestavení a spouštění kontejnerů se vytváří z imagí, které poskytuje Docker Hub od Microsoftu:
dotnet/sdk
Ukázka používá tento obrázek k sestavení aplikace. Image obsahuje sadu .NET SDK, která obsahuje nástroje příkazového řádku (CLI). Image je optimalizovaná pro místní vývoj, ladění a testování jednotek. Díky nástrojům nainstalovaným pro vývoj a kompilaci je image relativně velká.
dotnet/aspnet
Ukázka používá tuto image ke spuštění aplikace. Image obsahuje modul runtime ASP.NET Core a knihovny a je optimalizovaný pro spouštění aplikací v produkčním prostředí. Tato image je navržená pro rychlost nasazení a spuštění aplikace relativně malá, takže výkon sítě z Registru Dockeru na hostitele Dockeru je optimalizovaný. Do kontejneru se zkopírují jenom binární soubory a obsah potřebný ke spuštění aplikace. Obsah je připravený ke spuštění a umožňuje nejrychlejší čas od
docker run
spuštění aplikace. V modelu Dockeru není nutná dynamická kompilace kódu.
Požadavky
Stažení ukázkové aplikace
Stáhněte si ukázku klonováním úložiště .NET Docker:
git clone https://github.com/dotnet/dotnet-docker
Místní spuštění aplikace
Přejděte do složky projektu na adrese dotnet-docker/samples/aspnetapp/aspnetapp.
Spuštěním následujícího příkazu sestavte a spusťte aplikaci místně:
dotnet run
Přejděte do
http://localhost:5000
prohlížeče a otestujte aplikaci.Stisknutím ctrl+C na příkazovém řádku aplikaci zastavte.
Spuštění v kontejneru Linuxu nebo kontejneru Windows
Pokud chcete spustit v kontejneru Linuxu, klikněte pravým tlačítkem myši na ikonu klienta Dockeru na hlavním panelu a vyberte přepnout na kontejnery Linuxu.
Pokud chcete spustit v kontejneru Windows, klikněte pravým tlačítkem myši na ikonu klienta Dockeru na hlavním panelu a vyberte přepínač na kontejnery Windows.
Přejděte do složky Dockerfile v dotnet-docker/samples/aspnetapp.
Spuštěním následujících příkazů sestavte a spusťte ukázku v Dockeru:
docker build -t aspnetapp . docker run -it --rm -p 5000:80 --name aspnetcore_sample aspnetapp
Argumenty
build
příkazu:- Pojmenujte image aspnetapp.
- Vyhledejte soubor Dockerfile v aktuální složce (tečka na konci).
Argumenty příkazu spustit:
- Přidělte pseudo-TTY a nechte ho otevřené, i když není připojeno. (Stejný účinek jako
--interactive --tty
.) - Při ukončení kontejneru automaticky odeberte.
- Namapujte port 5000 na místním počítači na port 80 v kontejneru.
- Pojmenujte kontejner aspnetcore_sample.
- Zadejte image aspnetappu.
Přejděte do
http://localhost:5000
prohlížeče a otestujte aplikaci.
Ruční sestavení a nasazení
V některých scénářích můžete chtít nasadit aplikaci do kontejneru zkopírováním prostředků potřebných za běhu. Tato část ukazuje, jak nasadit ručně.
Přejděte do složky projektu na adrese dotnet-docker/samples/aspnetapp/aspnetapp.
Spusťte příkaz dotnet publish:
dotnet publish -c Release -o published
Argumenty příkazu:
- Sestavte aplikaci v režimu vydání (výchozí režim ladění).
- Vytvořte prostředky v publikované složce.
Spustit aplikaci.
Windows:
dotnet published\aspnetapp.dll
Linux:
dotnet published/aspnetapp.dll
Přejděte na
http://localhost:5000
home stránku.
Pokud chcete použít ručně publikovanou aplikaci v kontejneru Dockeru, vytvořte nový soubor Dockerfile a pomocí docker build .
příkazu sestavte image.
FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS runtime
WORKDIR /app
COPY published/ ./
ENTRYPOINT ["dotnet", "aspnetapp.dll"]
Pokud chcete nový obrázek zobrazit, použijte docker images
tento příkaz.
Soubor Dockerfile
Tady je soubor Dockerfile používaný příkazem docker build
, který jste spustili dříve. dotnet publish
Používá stejný způsob, jakým jste to udělali v této části k sestavení a nasazení.
# https://hub.docker.com/_/microsoft-dotnet
FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build
WORKDIR /source
# copy csproj and restore as distinct layers
COPY *.sln .
COPY aspnetapp/*.csproj ./aspnetapp/
RUN dotnet restore
# copy everything else and build app
COPY aspnetapp/. ./aspnetapp/
WORKDIR /source/aspnetapp
RUN dotnet publish -c release -o /app --no-restore
# final stage/image
FROM mcr.microsoft.com/dotnet/aspnet:7.0
WORKDIR /app
COPY --from=build /app ./
ENTRYPOINT ["dotnet", "aspnetapp.dll"]
V předchozím souboru Dockerfile *.csproj
se soubory zkopírují a obnoví jako odlišné vrstvy. docker build
Když příkaz sestaví image, použije integrovanou mezipaměť. Pokud se *.csproj
soubory od posledního docker build
spuštění příkazu nezměnily, dotnet restore
příkaz se nemusí spustit znovu. Místo toho se znovu použije integrovaná mezipaměť pro odpovídající dotnet restore
vrstvu. Další informace najdete v tématu Osvědčené postupy pro zápis souborů Dockerfile.
Další materiály
- Kontejnerizace aplikace .NET s publikováním dotnet
- Příkaz docker buildu
- Příkaz Docker Run
- ASP.NET ukázku Core Dockeru (ta, která se používá v tomto kurzu.)
- Konfigurace ASP.NET Core pro práci s proxy servery a nástroji pro vyrovnávání zatížení
- Práce s nástroji Visual Studio Docker Tools
- Ladění pomocí editoru Visual Studio Code
- GC s využitím Dockeru a malých kontejnerů
- System.IO.IOException: Byl dosažen nakonfigurovaný limit uživatele (128) počtu inotify instancí.
- Aktualizace imagí Dockeru
Další kroky
Úložiště Git, které obsahuje ukázkovou aplikaci, obsahuje také dokumentaci. Přehled prostředků dostupných v úložišti najdete v souboru README. Konkrétně se dozvíte, jak implementovat HTTPS:
ASP.NET core imagí Dockeru
Pro účely tohoto kurzu si stáhnete ukázkovou aplikaci ASP.NET Core a spustíte ji v kontejnerech Dockeru. Ukázka funguje s kontejnery Linuxu i Windows.
Ukázkový soubor Dockerfile používá funkci sestavení dockeru s více fázemi k sestavení a spuštění v různých kontejnerech. Sestavení a spouštění kontejnerů se vytváří z imagí, které poskytuje Docker Hub od Microsoftu:
dotnet/sdk
Ukázka používá tento obrázek k sestavení aplikace. Image obsahuje sadu .NET SDK, která obsahuje nástroje příkazového řádku (CLI). Image je optimalizovaná pro místní vývoj, ladění a testování jednotek. Díky nástrojům nainstalovaným pro vývoj a kompilaci je image relativně velká.
dotnet/core/sdk
Ukázka používá tento obrázek k sestavení aplikace. Image obsahuje sadu .NET Core SDK, která obsahuje nástroje příkazového řádku (CLI). Image je optimalizovaná pro místní vývoj, ladění a testování jednotek. Díky nástrojům nainstalovaným pro vývoj a kompilaci je image relativně velká.
dotnet/aspnet
Ukázka používá tuto image ke spuštění aplikace. Image obsahuje modul runtime ASP.NET Core a knihovny a je optimalizovaný pro spouštění aplikací v produkčním prostředí. Tato image je navržená pro rychlost nasazení a spuštění aplikace relativně malá, takže výkon sítě z Registru Dockeru na hostitele Dockeru je optimalizovaný. Do kontejneru se zkopírují jenom binární soubory a obsah potřebný ke spuštění aplikace. Obsah je připravený ke spuštění a umožňuje nejrychlejší čas od
docker run
spuštění aplikace. V modelu Dockeru není nutná dynamická kompilace kódu.
dotnet/core/aspnet
Ukázka používá tuto image ke spuštění aplikace. Image obsahuje modul runtime ASP.NET Core a knihovny a je optimalizovaný pro spouštění aplikací v produkčním prostředí. Tato image je navržená pro rychlost nasazení a spuštění aplikace relativně malá, takže výkon sítě z Registru Dockeru na hostitele Dockeru je optimalizovaný. Do kontejneru se zkopírují jenom binární soubory a obsah potřebný ke spuštění aplikace. Obsah je připravený ke spuštění a umožňuje nejrychlejší čas od
docker run
spuštění aplikace. V modelu Dockeru není nutná dynamická kompilace kódu.
Požadavky
Stažení ukázkové aplikace
Stáhněte si ukázku klonováním úložiště .NET Docker:
git clone https://github.com/dotnet/dotnet-docker
Místní spuštění aplikace
Přejděte do složky projektu na adrese dotnet-docker/samples/aspnetapp/aspnetapp.
Spuštěním následujícího příkazu sestavte a spusťte aplikaci místně:
dotnet run
Přejděte do
http://localhost:5000
prohlížeče a otestujte aplikaci.Stisknutím ctrl+C na příkazovém řádku aplikaci zastavte.
Spuštění v kontejneru Linuxu nebo kontejneru Windows
Pokud chcete spustit v kontejneru Linuxu, klikněte pravým tlačítkem myši na ikonu klienta Dockeru na hlavním panelu a vyberte přepnout na kontejnery Linuxu.
Pokud chcete spustit v kontejneru Windows, klikněte pravým tlačítkem myši na ikonu klienta Dockeru na hlavním panelu a vyberte přepínač na kontejnery Windows.
Přejděte do složky Dockerfile v dotnet-docker/samples/aspnetapp.
Spuštěním následujících příkazů sestavte a spusťte ukázku v Dockeru:
docker build -t aspnetapp . docker run -it --rm -p 5000:80 --name aspnetcore_sample aspnetapp
Argumenty
build
příkazu:- Pojmenujte image aspnetapp.
- Vyhledejte soubor Dockerfile v aktuální složce (tečka na konci).
Argumenty příkazu spustit:
- Přidělte pseudo-TTY a nechte ho otevřené, i když není připojeno. (Stejný účinek jako
--interactive --tty
.) - Při ukončení kontejneru automaticky odeberte.
- Namapujte port 5000 na místním počítači na port 80 v kontejneru.
- Pojmenujte kontejner aspnetcore_sample.
- Zadejte image aspnetappu.
Přejděte do
http://localhost:5000
prohlížeče a otestujte aplikaci.
Ruční sestavení a nasazení
V některých scénářích můžete chtít nasadit aplikaci do kontejneru zkopírováním prostředků potřebných za běhu. Tato část ukazuje, jak nasadit ručně.
Přejděte do složky projektu na adrese dotnet-docker/samples/aspnetapp/aspnetapp.
Spusťte příkaz dotnet publish:
dotnet publish -c Release -o published
Argumenty příkazu:
- Sestavte aplikaci v režimu vydání (výchozí režim ladění).
- Vytvořte prostředky v publikované složce.
Spustit aplikaci.
Windows:
dotnet published\aspnetapp.dll
Linux:
dotnet published/aspnetapp.dll
Přejděte na
http://localhost:5000
home stránku.
Pokud chcete použít ručně publikovanou aplikaci v kontejneru Dockeru, vytvořte nový soubor Dockerfile a pomocí docker build .
příkazu sestavte image.
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS runtime
WORKDIR /app
COPY published/ ./
ENTRYPOINT ["dotnet", "aspnetapp.dll"]
Pokud chcete nový obrázek zobrazit, použijte docker images
tento příkaz.
Soubor Dockerfile
Tady je soubor Dockerfile používaný příkazem docker build
, který jste spustili dříve. dotnet publish
Používá stejný způsob, jakým jste to udělali v této části k sestavení a nasazení.
# https://hub.docker.com/_/microsoft-dotnet
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /source
# copy csproj and restore as distinct layers
COPY *.sln .
COPY aspnetapp/*.csproj ./aspnetapp/
RUN dotnet restore
# copy everything else and build app
COPY aspnetapp/. ./aspnetapp/
WORKDIR /source/aspnetapp
RUN dotnet publish -c release -o /app --no-restore
# final stage/image
FROM mcr.microsoft.com/dotnet/aspnet:6.0
WORKDIR /app
COPY --from=build /app ./
ENTRYPOINT ["dotnet", "aspnetapp.dll"]
FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS runtime
WORKDIR /app
COPY published/ ./
ENTRYPOINT ["dotnet", "aspnetapp.dll"]
Pokud chcete nový obrázek zobrazit, použijte docker images
tento příkaz.
Soubor Dockerfile
Tady je soubor Dockerfile používaný příkazem docker build
, který jste spustili dříve. dotnet publish
Používá stejný způsob, jakým jste to udělali v této části k sestavení a nasazení.
# https://hub.docker.com/_/microsoft-dotnet
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
WORKDIR /source
# copy csproj and restore as distinct layers
COPY *.sln .
COPY aspnetapp/*.csproj ./aspnetapp/
RUN dotnet restore
# copy everything else and build app
COPY aspnetapp/. ./aspnetapp/
WORKDIR /source/aspnetapp
RUN dotnet publish -c release -o /app --no-restore
# final stage/image
FROM mcr.microsoft.com/dotnet/aspnet:5.0
WORKDIR /app
COPY --from=build /app ./
ENTRYPOINT ["dotnet", "aspnetapp.dll"]
V předchozím souboru Dockerfile *.csproj
se soubory zkopírují a obnoví jako odlišné vrstvy. docker build
Když příkaz sestaví image, použije integrovanou mezipaměť. Pokud se *.csproj
soubory od posledního docker build
spuštění příkazu nezměnily, dotnet restore
příkaz se nemusí spustit znovu. Místo toho se znovu použije integrovaná mezipaměť pro odpovídající dotnet restore
vrstvu. Další informace najdete v tématu Osvědčené postupy pro zápis souborů Dockerfile.
FROM mcr.microsoft.com/dotnet/core/aspnet:3.0 AS runtime
WORKDIR /app
COPY published/ ./
ENTRYPOINT ["dotnet", "aspnetapp.dll"]
Soubor Dockerfile
Tady je soubor Dockerfile používaný příkazem docker build
, který jste spustili dříve. dotnet publish
Používá stejný způsob, jakým jste to udělali v této části k sestavení a nasazení.
FROM mcr.microsoft.com/dotnet/core/sdk:3.0 AS build
WORKDIR /app
# copy csproj and restore as distinct layers
COPY *.sln .
COPY aspnetapp/*.csproj ./aspnetapp/
RUN dotnet restore
# copy everything else and build app
COPY aspnetapp/. ./aspnetapp/
WORKDIR /app/aspnetapp
RUN dotnet publish -c Release -o out
FROM mcr.microsoft.com/dotnet/core/aspnet:3.0 AS runtime
WORKDIR /app
COPY --from=build /app/aspnetapp/out ./
ENTRYPOINT ["dotnet", "aspnetapp.dll"]
Jak je uvedeno v předchozím souboru Dockerfile, *.csproj
soubory se zkopírují a obnoví jako odlišné vrstvy. docker build
Když příkaz sestaví image, použije integrovanou mezipaměť. Pokud se *.csproj
soubory od posledního docker build
spuštění příkazu nezměnily, dotnet restore
příkaz se nemusí spustit znovu. Místo toho se znovu použije integrovaná mezipaměť pro odpovídající dotnet restore
vrstvu. Další informace najdete v tématu Osvědčené postupy pro zápis souborů Dockerfile.
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS runtime
WORKDIR /app
COPY published/ ./
ENTRYPOINT ["dotnet", "aspnetapp.dll"]
Soubor Dockerfile
Tady je soubor Dockerfile používaný příkazem docker build
, který jste spustili dříve. dotnet publish
Používá stejný způsob, jakým jste to udělali v této části k sestavení a nasazení.
FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build
WORKDIR /app
# copy csproj and restore as distinct layers
COPY *.sln .
COPY aspnetapp/*.csproj ./aspnetapp/
RUN dotnet restore
# copy everything else and build app
COPY aspnetapp/. ./aspnetapp/
WORKDIR /app/aspnetapp
RUN dotnet publish -c Release -o out
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS runtime
WORKDIR /app
COPY --from=build /app/aspnetapp/out ./
ENTRYPOINT ["dotnet", "aspnetapp.dll"]
V předchozím souboru Dockerfile *.csproj
se soubory zkopírují a obnoví jako odlišné vrstvy. docker build
Když příkaz sestaví image, použije integrovanou mezipaměť. Pokud se *.csproj
soubory od posledního docker build
spuštění příkazu nezměnily, dotnet restore
příkaz se nemusí spustit znovu. Místo toho se znovu použije integrovaná mezipaměť pro odpovídající dotnet restore
vrstvu. Další informace najdete v tématu Osvědčené postupy pro zápis souborů Dockerfile.
Další materiály
- Kontejnerizace aplikace .NET s publikováním dotnet
- Příkaz docker buildu
- Příkaz Docker Run
- ASP.NET ukázku Core Dockeru (ta, která se používá v tomto kurzu.)
- Konfigurace ASP.NET Core pro práci s proxy servery a nástroji pro vyrovnávání zatížení
- Práce s nástroji Visual Studio Docker Tools
- Ladění pomocí editoru Visual Studio Code
- GC s využitím Dockeru a malých kontejnerů
- System.IO.IOException: Byl dosažen nakonfigurovaný limit uživatele (128) počtu inotify instancí.
Další kroky
Úložiště Git, které obsahuje ukázkovou aplikaci, obsahuje také dokumentaci. Přehled prostředků dostupných v úložišti najdete v souboru README. Konkrétně se dozvíte, jak implementovat HTTPS: