Executar um aplicativo do ASP.NET Core em contêineres do Docker
Observação
Esta não é a versão mais recente deste artigo. Para informações sobre a versão vigente, confira a Versão do .NET 8 deste artigo.
Aviso
Esta versão do ASP.NET Core não tem mais suporte. Para obter mais informações, confira .NET e a Política de Suporte do .NET Core. Para informações sobre a versão vigente, confira a Versão do .NET 8 deste artigo.
Importante
Essas informações relacionam-se ao produto de pré-lançamento, que poderá ser substancialmente modificado antes do lançamento comercial. A Microsoft não oferece nenhuma garantia, explícita ou implícita, quanto às informações fornecidas aqui.
Para informações sobre a versão vigente, confira a Versão do .NET 8 deste artigo.
Este artigo mostra como executar um aplicativo ASP.NET Core em contêineres do Docker.
O Windows Home Edition não dá suporte ao Hyper-V, e o Hyper-V é necessário para o Docker.
Consulte Conteinerizar um aplicativo .NET com dotnet publish para obter informações sobre como conteineirizar um aplicativo .NET com dotnet publish
.
Imagens do ASP.NET Core Docker
Para este tutorial, você deve baixar um aplicativo de exemplo ASP.NET Core e executá-lo em contêineres do Docker. O exemplo funciona com contêineres do Linux e do Windows.
O exemplo de Dockerfile usa o recurso de build de vários estágios do Docker para compilar e executar em contêineres diferentes. Os contêineres de build e execução são criados a partir de imagens que são fornecidas pela Microsoft no Hub do Docker:
dotnet/sdk
O exemplo usa essa imagem para compilar o aplicativo. A imagem contém o SDK do .NET, que inclui as ferramentas de linha de comando (CLI). A imagem é otimizada para desenvolvimento local, depuração e teste de unidade. As ferramentas instaladas para desenvolvimento e compilação tornam a imagem relativamente grande.
dotnet/aspnet
O exemplo usa essa imagem para executar o aplicativo. A imagem contém o runtime do ASP.NET Core e as bibliotecas e é otimizada para executar aplicativos em produção. Desenvolvida para acelerar a implantação e a inicialização do aplicativo, a imagem é relativamente pequena, portanto, o desempenho da rede no registro do Docker para o host do Docker é otimizado. Somente os binários e o conteúdo necessários para executar o aplicativo são copiados para o contêiner. O conteúdo está pronto para ser executado, permitindo mais rapidez do
docker run
para a inicialização do aplicativo. A compilação de código dinâmico não é necessária no modelo do Docker.
Pré-requisitos
Cliente do Docker 18.03 ou posterior
Baixar o aplicativo de exemplo
Baixe o exemplo por meio da clonagem do repositório do Docker .NET:
git clone https://github.com/dotnet/dotnet-docker
Executar o aplicativo localmente
Navegue até a pasta do projeto em dotnet-docker/samples/aspnetapp/aspnetapp.
Execute o seguinte comando para compilar e executar o aplicativo localmente:
dotnet run
Vá para
http://localhost:<port>
em um navegador para testar o aplicativo.Pressione Ctrl+C no prompt de comando para interromper o aplicativo.
Executar em um contêiner do Linux ou em um contêiner do Windows
Para executar em um contêiner do Linux, clique com o botão direito do mouse no ícone do cliente Docker da Bandeja do Sistema e selecione alternar para contêineres do Linux.
Para executar em um contêiner do Windows, clique com o botão direito do mouse no ícone do cliente Docker da Bandeja do Sistema e selecione alternar para contêineres do Windows.
Navegue até a pasta do Dockerfile em dotnet-docker/samples/aspnetapp.
Execute os seguintes comandos para compilar e executar a amostra no Docker:
docker build -t aspnetapp . docker run -it --rm -p <port>:8080 --name aspnetcore_sample aspnetapp
Os argumentos de comando
build
:- Dê o nome aspnetapp para a imagem.
- Procure o Dockerfile na pasta atual (o ponto no final).
Os argumentos de comando de execução:
- Aloque um pseudo-TTY e mantenha-o aberto, mesmo se não estiver anexado. (Mesmo efeito de
--interactive --tty
). - Remova automaticamente o contêiner quando ele é encerrado.
- Mapeie
<port>
no computador local para a porta 8080 no contêiner. - Dê o nome aspnetcore_sample ao contêiner.
- Especifique a imagem aspnetapp.
Vá para
http://localhost:<port>
em um navegador para testar o aplicativo.
Criar e implantar manualmente
Em alguns cenários, talvez você queira implantar um aplicativo em um contêiner copiando os ativos necessários no tempo de execução. Esta seção mostra como realizar a implantação manual.
Navegue até a pasta do projeto em dotnet-docker/samples/aspnetapp/aspnetapp.
Execute o comando dotnet publish:
dotnet publish -c Release -o published
Os argumentos do comando:
- Compile o aplicativo no modo de versão (o padrão é o modo de depuração).
- Crie os ativos na pasta published.
Execute o aplicativo.
Windows:
dotnet published\aspnetapp.dll
Linux:
dotnet published/aspnetapp.dll
Navegue até
http://localhost:<port>
para ver a página home.
Para usar o aplicativo publicado manualmente em um contêiner do Docker, crie um novo Dockerfile e use o comando docker build .
para criar uma imagem.
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS runtime
WORKDIR /app
COPY published/ ./
ENTRYPOINT ["dotnet", "aspnetapp.dll"]
Para ver a nova imagem, use o comando docker images
.
O Dockerfile
Aqui está o Dockerfile usado pelo comando docker build
que foi executado anteriormente. Ele usa dotnet publish
da mesma maneira que foi feito nesta seção para realizar a criação e implantação.
# 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"]
No Dockerfile anterior, os arquivos *.csproj
são copiados e restaurados como camadas distintas. Quando o comando docker build
cria uma imagem, ele usa um cache interno. Se os arquivos *.csproj
não tiverem sido alterados desde a última execução do comando docker build
, o comando dotnet restore
não precisará ser executado novamente. Em vez disso, o cache interno para a camada correspondente dotnet restore
é reutilizado. Para obter mais informações, confira Melhores práticas para escrever Dockerfiles.
Recursos adicionais
- Colocar em contêiner um aplicativo .NET com dotnet publish
- Comando de build do Docker
- Comando de execução do Docker
- Exemplo do Docker do ASP.NET Core (aquele usado neste tutorial).
- Configurar o ASP.NET Core para trabalhar com servidores proxy e balanceadores de carga
- Trabalhar com ferramentas de Docker do Visual Studio
- Depuração com o Visual Studio Code
- GC usando o Docker e contêineres pequenos
- System.IO.IOException: o limite de usuário configurado (128) no número de instâncias inotify foi atingido
- Atualizações nas imagens do Docker
Próximas etapas
O repositório Git que contém o aplicativo de exemplo também inclui a documentação. Para obter uma visão geral dos recursos disponíveis no repositório, confira o arquivo Leiame. Em particular, saiba como implementar o HTTPS:
Imagens do ASP.NET Core Docker
Para este tutorial, você deve baixar um aplicativo de exemplo ASP.NET Core e executá-lo em contêineres do Docker. O exemplo funciona com contêineres do Linux e do Windows.
O exemplo de Dockerfile usa o recurso de build de vários estágios do Docker para compilar e executar em contêineres diferentes. Os contêineres de build e execução são criados a partir de imagens que são fornecidas pela Microsoft no Hub do Docker:
dotnet/sdk
O exemplo usa essa imagem para compilar o aplicativo. A imagem contém o SDK do .NET, que inclui as ferramentas de linha de comando (CLI). A imagem é otimizada para desenvolvimento local, depuração e teste de unidade. As ferramentas instaladas para desenvolvimento e compilação tornam a imagem relativamente grande.
dotnet/aspnet
O exemplo usa essa imagem para executar o aplicativo. A imagem contém o runtime do ASP.NET Core e as bibliotecas e é otimizada para executar aplicativos em produção. Desenvolvida para acelerar a implantação e a inicialização do aplicativo, a imagem é relativamente pequena, portanto, o desempenho da rede no registro do Docker para o host do Docker é otimizado. Somente os binários e o conteúdo necessários para executar o aplicativo são copiados para o contêiner. O conteúdo está pronto para ser executado, permitindo mais rapidez do
docker run
para a inicialização do aplicativo. A compilação de código dinâmico não é necessária no modelo do Docker.
Pré-requisitos
Cliente do Docker 18.03 ou posterior
Baixar o aplicativo de exemplo
Baixe o exemplo por meio da clonagem do repositório do Docker .NET:
git clone https://github.com/dotnet/dotnet-docker
Executar o aplicativo localmente
Navegue até a pasta do projeto em dotnet-docker/samples/aspnetapp/aspnetapp.
Execute o seguinte comando para compilar e executar o aplicativo localmente:
dotnet run
Vá para
http://localhost:5000
em um navegador para testar o aplicativo.Pressione Ctrl+C no prompt de comando para interromper o aplicativo.
Executar em um contêiner do Linux ou em um contêiner do Windows
Para executar em um contêiner do Linux, clique com o botão direito do mouse no ícone do cliente Docker da Bandeja do Sistema e selecione alternar para contêineres do Linux.
Para executar em um contêiner do Windows, clique com o botão direito do mouse no ícone do cliente Docker da Bandeja do Sistema e selecione alternar para contêineres do Windows.
Navegue até a pasta do Dockerfile em dotnet-docker/samples/aspnetapp.
Execute os seguintes comandos para compilar e executar a amostra no Docker:
docker build -t aspnetapp . docker run -it --rm -p 5000:80 --name aspnetcore_sample aspnetapp
Os argumentos de comando
build
:- Dê o nome aspnetapp para a imagem.
- Procure o Dockerfile na pasta atual (o ponto no final).
Os argumentos de comando de execução:
- Aloque um pseudo-TTY e mantenha-o aberto, mesmo se não estiver anexado. (Mesmo efeito de
--interactive --tty
). - Remova automaticamente o contêiner quando ele é encerrado.
- Mapeie a porta 5000 no computador local para a porta 80 no contêiner.
- Dê o nome aspnetcore_sample ao contêiner.
- Especifique a imagem aspnetapp.
Vá para
http://localhost:5000
em um navegador para testar o aplicativo.
Criar e implantar manualmente
Em alguns cenários, talvez você queira implantar um aplicativo em um contêiner copiando os ativos necessários no tempo de execução. Esta seção mostra como realizar a implantação manual.
Navegue até a pasta do projeto em dotnet-docker/samples/aspnetapp/aspnetapp.
Execute o comando dotnet publish:
dotnet publish -c Release -o published
Os argumentos do comando:
- Compile o aplicativo no modo de versão (o padrão é o modo de depuração).
- Crie os ativos na pasta published.
Execute o aplicativo.
Windows:
dotnet published\aspnetapp.dll
Linux:
dotnet published/aspnetapp.dll
Navegue até
http://localhost:5000
para ver a página home.
Para usar o aplicativo publicado manualmente em um contêiner do Docker, crie um novo Dockerfile e use o comando docker build .
para criar uma imagem.
FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS runtime
WORKDIR /app
COPY published/ ./
ENTRYPOINT ["dotnet", "aspnetapp.dll"]
Para ver a nova imagem, use o comando docker images
.
O Dockerfile
Aqui está o Dockerfile usado pelo comando docker build
que foi executado anteriormente. Ele usa dotnet publish
da mesma maneira que foi feito nesta seção para realizar a criação e implantação.
# 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"]
No Dockerfile anterior, os arquivos *.csproj
são copiados e restaurados como camadas distintas. Quando o comando docker build
cria uma imagem, ele usa um cache interno. Se os arquivos *.csproj
não tiverem sido alterados desde a última execução do comando docker build
, o comando dotnet restore
não precisará ser executado novamente. Em vez disso, o cache interno para a camada correspondente dotnet restore
é reutilizado. Para obter mais informações, confira Melhores práticas para escrever Dockerfiles.
Recursos adicionais
- Colocar em contêiner um aplicativo .NET com dotnet publish
- Comando de build do Docker
- Comando de execução do Docker
- Exemplo do Docker do ASP.NET Core (aquele usado neste tutorial).
- Configurar o ASP.NET Core para trabalhar com servidores proxy e balanceadores de carga
- Trabalhar com ferramentas de Docker do Visual Studio
- Depuração com o Visual Studio Code
- GC usando o Docker e contêineres pequenos
- System.IO.IOException: o limite de usuário configurado (128) no número de instâncias inotify foi atingido
- Atualizações nas imagens do Docker
Próximas etapas
O repositório Git que contém o aplicativo de exemplo também inclui a documentação. Para obter uma visão geral dos recursos disponíveis no repositório, confira o arquivo Leiame. Em particular, saiba como implementar o HTTPS:
Imagens do ASP.NET Core Docker
Para este tutorial, você deve baixar um aplicativo de exemplo ASP.NET Core e executá-lo em contêineres do Docker. O exemplo funciona com contêineres do Linux e do Windows.
O exemplo de Dockerfile usa o recurso de build de vários estágios do Docker para compilar e executar em contêineres diferentes. Os contêineres de build e execução são criados a partir de imagens que são fornecidas pela Microsoft no Hub do Docker:
dotnet/sdk
O exemplo usa essa imagem para compilar o aplicativo. A imagem contém o SDK do .NET, que inclui as ferramentas de linha de comando (CLI). A imagem é otimizada para desenvolvimento local, depuração e teste de unidade. As ferramentas instaladas para desenvolvimento e compilação tornam a imagem relativamente grande.
dotnet/core/sdk
O exemplo usa essa imagem para compilar o aplicativo. A imagem contém o SDK do .NET Core, que inclui as ferramentas de linha de comando (CLI). A imagem é otimizada para desenvolvimento local, depuração e teste de unidade. As ferramentas instaladas para desenvolvimento e compilação tornam a imagem relativamente grande.
dotnet/aspnet
O exemplo usa essa imagem para executar o aplicativo. A imagem contém o runtime do ASP.NET Core e as bibliotecas e é otimizada para executar aplicativos em produção. Desenvolvida para acelerar a implantação e a inicialização do aplicativo, a imagem é relativamente pequena, portanto, o desempenho da rede no registro do Docker para o host do Docker é otimizado. Somente os binários e o conteúdo necessários para executar o aplicativo são copiados para o contêiner. O conteúdo está pronto para ser executado, permitindo mais rapidez do
docker run
para a inicialização do aplicativo. A compilação de código dinâmico não é necessária no modelo do Docker.
dotnet/core/aspnet
O exemplo usa essa imagem para executar o aplicativo. A imagem contém o runtime do ASP.NET Core e as bibliotecas e é otimizada para executar aplicativos em produção. Desenvolvida para acelerar a implantação e a inicialização do aplicativo, a imagem é relativamente pequena, portanto, o desempenho da rede no registro do Docker para o host do Docker é otimizado. Somente os binários e o conteúdo necessários para executar o aplicativo são copiados para o contêiner. O conteúdo está pronto para ser executado, permitindo mais rapidez do
docker run
para a inicialização do aplicativo. A compilação de código dinâmico não é necessária no modelo do Docker.
Pré-requisitos
Baixar o aplicativo de exemplo
Baixe o exemplo por meio da clonagem do repositório do Docker .NET:
git clone https://github.com/dotnet/dotnet-docker
Executar o aplicativo localmente
Navegue até a pasta do projeto em dotnet-docker/samples/aspnetapp/aspnetapp.
Execute o seguinte comando para compilar e executar o aplicativo localmente:
dotnet run
Vá para
http://localhost:5000
em um navegador para testar o aplicativo.Pressione Ctrl+C no prompt de comando para interromper o aplicativo.
Executar em um contêiner do Linux ou em um contêiner do Windows
Para executar em um contêiner do Linux, clique com o botão direito do mouse no ícone do cliente Docker da Bandeja do Sistema e selecione alternar para contêineres do Linux.
Para executar em um contêiner do Windows, clique com o botão direito do mouse no ícone do cliente Docker da Bandeja do Sistema e selecione alternar para contêineres do Windows.
Navegue até a pasta do Dockerfile em dotnet-docker/samples/aspnetapp.
Execute os seguintes comandos para compilar e executar a amostra no Docker:
docker build -t aspnetapp . docker run -it --rm -p 5000:80 --name aspnetcore_sample aspnetapp
Os argumentos de comando
build
:- Dê o nome aspnetapp para a imagem.
- Procure o Dockerfile na pasta atual (o ponto no final).
Os argumentos de comando de execução:
- Aloque um pseudo-TTY e mantenha-o aberto, mesmo se não estiver anexado. (Mesmo efeito de
--interactive --tty
). - Remova automaticamente o contêiner quando ele é encerrado.
- Mapeie a porta 5000 no computador local para a porta 80 no contêiner.
- Dê o nome aspnetcore_sample ao contêiner.
- Especifique a imagem aspnetapp.
Vá para
http://localhost:5000
em um navegador para testar o aplicativo.
Criar e implantar manualmente
Em alguns cenários, talvez você queira implantar um aplicativo em um contêiner copiando os ativos necessários no tempo de execução. Esta seção mostra como realizar a implantação manual.
Navegue até a pasta do projeto em dotnet-docker/samples/aspnetapp/aspnetapp.
Execute o comando dotnet publish:
dotnet publish -c Release -o published
Os argumentos do comando:
- Compile o aplicativo no modo de versão (o padrão é o modo de depuração).
- Crie os ativos na pasta published.
Execute o aplicativo.
Windows:
dotnet published\aspnetapp.dll
Linux:
dotnet published/aspnetapp.dll
Navegue até
http://localhost:5000
para ver a página home.
Para usar o aplicativo publicado manualmente em um contêiner do Docker, crie um novo Dockerfile e use o comando docker build .
para criar uma imagem.
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS runtime
WORKDIR /app
COPY published/ ./
ENTRYPOINT ["dotnet", "aspnetapp.dll"]
Para ver a nova imagem, use o comando docker images
.
O Dockerfile
Aqui está o Dockerfile usado pelo comando docker build
que foi executado anteriormente. Ele usa dotnet publish
da mesma maneira que foi feito nesta seção para realizar a criação e implantação.
# 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"]
Para ver a nova imagem, use o comando docker images
.
O Dockerfile
Aqui está o Dockerfile usado pelo comando docker build
que foi executado anteriormente. Ele usa dotnet publish
da mesma maneira que foi feito nesta seção para realizar a criação e implantação.
# 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"]
No Dockerfile anterior, os arquivos *.csproj
são copiados e restaurados como camadas distintas. Quando o comando docker build
cria uma imagem, ele usa um cache interno. Se os arquivos *.csproj
não tiverem sido alterados desde a última execução do comando docker build
, o comando dotnet restore
não precisará ser executado novamente. Em vez disso, o cache interno para a camada correspondente dotnet restore
é reutilizado. Para obter mais informações, confira Melhores práticas para escrever Dockerfiles.
FROM mcr.microsoft.com/dotnet/core/aspnet:3.0 AS runtime
WORKDIR /app
COPY published/ ./
ENTRYPOINT ["dotnet", "aspnetapp.dll"]
O Dockerfile
Aqui está o Dockerfile usado pelo comando docker build
que foi executado anteriormente. Ele usa dotnet publish
da mesma maneira que foi feito nesta seção para realizar a criação e implantação.
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"]
Conforme observado no Dockerfile anterior, os arquivos *.csproj
são copiados e restaurados como camadas distintas. Quando o comando docker build
cria uma imagem, ele usa um cache interno. Se os arquivos *.csproj
não tiverem sido alterados desde a última execução do comando docker build
, o comando dotnet restore
não precisará ser executado novamente. Em vez disso, o cache interno para a camada correspondente dotnet restore
é reutilizado. Para obter mais informações, confira Melhores práticas para escrever Dockerfiles.
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS runtime
WORKDIR /app
COPY published/ ./
ENTRYPOINT ["dotnet", "aspnetapp.dll"]
O Dockerfile
Aqui está o Dockerfile usado pelo comando docker build
que foi executado anteriormente. Ele usa dotnet publish
da mesma maneira que foi feito nesta seção para realizar a criação e implantação.
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"]
No Dockerfile anterior, os arquivos *.csproj
são copiados e restaurados como camadas distintas. Quando o comando docker build
cria uma imagem, ele usa um cache interno. Se os arquivos *.csproj
não tiverem sido alterados desde a última execução do comando docker build
, o comando dotnet restore
não precisará ser executado novamente. Em vez disso, o cache interno para a camada correspondente dotnet restore
é reutilizado. Para obter mais informações, confira Melhores práticas para escrever Dockerfiles.
Recursos adicionais
- Colocar em contêiner um aplicativo .NET com dotnet publish
- Comando de build do Docker
- Comando de execução do Docker
- Exemplo do Docker do ASP.NET Core (aquele usado neste tutorial).
- Configurar o ASP.NET Core para trabalhar com servidores proxy e balanceadores de carga
- Trabalhar com ferramentas de Docker do Visual Studio
- Depuração com o Visual Studio Code
- GC usando o Docker e contêineres pequenos
- System.IO.IOException: o limite de usuário configurado (128) no número de instâncias inotify foi atingido
Próximas etapas
O repositório Git que contém o aplicativo de exemplo também inclui a documentação. Para obter uma visão geral dos recursos disponíveis no repositório, confira o arquivo Leiame. Em particular, saiba como implementar o HTTPS: