Explore elementos de um Dockerfile
Um Dockerfile é um script que contém uma série de instruções que são usadas para criar uma imagem do Docker. Dockerfiles normalmente incluem as seguintes informações:
- A imagem de base ou principal que utilizamos para criar a nova imagem
- Comandos para atualizar o sistema operacional base e instalar outro software
- Artefactos de compilação a incluir, por exemplo, uma aplicação desenvolvida
- Serviços a expor, por exemplo, a configuração do armazenamento e da rede
- O comando a executar quando o contentor for iniciado
Criar um Dockerfile
A primeira etapa na criação de um Dockerfile é escolher uma imagem base que sirva de base para seu aplicativo. Por exemplo, se você estiver criando um aplicativo .NET, poderá escolher uma imagem do Microsoft .NET como base.
# Use the .NET 6 runtime as a base image
FROM mcr.microsoft.com/dotnet/runtime:6.0
# Set the working directory to /app
WORKDIR /app
# Copy the contents of the published app to the container's /app directory
COPY bin/Release/net6.0/publish/ .
# Expose port 80 to the outside world
EXPOSE 80
# Set the command to run when the container starts
CMD ["dotnet", "MyApp.dll"]
Vamos analisar cada linha para ver o que ela faz:
FROM mcr.microsoft.com/dotnet/runtime:6.0
: Este comando define a imagem base para o tempo de execução do .NET 6, que é necessário para executar aplicativos do .NET 6.WORKDIR /app
: Define o diretório de trabalho como/app
, que é onde os arquivos do aplicativo são copiados.COPY bin/Release/net6.0/publish/ .
: Copia o conteúdo do aplicativo publicado para o diretório do/app
contêiner. Supomos que o aplicativo .NET 6 é criado e publicado nobin/Release/net6.0/publish
diretório.EXPOSE 80
: Expõe a porta 80, que é a porta HTTP padrão, para o mundo exterior. Altere essa linha de acordo se seu aplicativo escutar em uma porta diferente.CMD ["dotnet", "MyApp.dll"]
: O comando a ser executado quando o contêiner é iniciado. Nesse caso, estamos executando o comando dotnet com o nome do arquivo DLL do nosso aplicativo (MyApp.dll
). Altere esta linha para corresponder ao nome e ao ponto de entrada das suas aplicações.
Não vamos abordar a especificação do arquivo Dockerfile. Visite a referência do Dockerfile para obter mais informações. Cada um destes passos cria uma imagem de contentor colocada em cache à medida que vamos compilando a imagem de contentor final. Estas imagens temporárias estão em camadas sobre as imagens anteriores e são apresentadas como uma imagem única depois de concluídos todos os passos.
Recursos
- Referência de execução do Docker (CLI)
- Referência de compilação do Docker