Construindo Imagens Docker com Dockerfiles
Dockerfiles são os projetos para criar imagens Docker. Eles definem as etapas necessárias para construir uma imagem Docker, incluindo a imagem base, a instalação de dependências e a configuração da aplicação.
O que é um Dockerfile?
Um Dockerfile é um arquivo de texto que contém uma série de instruções e comandos usados para construir uma imagem Docker. Ele fornece uma maneira de automatizar o processo de criação de uma imagem Docker, garantindo que a imagem possa ser construída de forma consistente e confiável em diferentes ambientes.
Sintaxe do Dockerfile
Os Dockerfiles usam uma sintaxe específica para definir as etapas para construir uma imagem Docker. As instruções mais comuns do Dockerfile são:
| Instrução |
Descrição |
FROM |
Especifica a imagem base a ser usada para a construção |
COPY |
Copia arquivos ou diretórios do host para o contêiner |
RUN |
Executa um comando no contêiner durante o processo de construção |
CMD |
Especifica o comando padrão a ser executado quando o contêiner inicia |
EXPOSE |
Informa ao Docker que o contêiner escuta nas portas de rede especificadas |
ENV |
Define variáveis de ambiente no contêiner |
Aqui está um exemplo de Dockerfile que constrói uma aplicação web simples usando Python:
FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["python", "app.py"]
EXPOSE 5000
Construindo Imagens Docker
Para construir uma imagem Docker usando um Dockerfile, você pode usar o comando docker build:
docker build -t my-app .
Este comando construirá uma imagem Docker com a tag my-app usando o Dockerfile no diretório atual.
Empurrando Imagens Docker para um Registro
Depois de construir uma imagem Docker, você pode empurrá-la para um registro Docker, como o Docker Hub ou um registro privado, para compartilhá-la com outros ou implantá-la em um ambiente de produção.
docker push my-app:latest
Compreendendo como criar e usar Dockerfiles, você pode construir e gerenciar imagens Docker para suas aplicações de forma eficaz.