Por Kauê Fernandes Braz
Data 19/07/2024
O que é Docker?
O Docker é uma plataforma de código aberto que facilita a criação, o gerenciamento e a execução de aplicativos em contêineres leves e portáteis. Vamos pensar em um contêiner como uma caixa que empacota tudo o que o aplicativo precisa para funcionar, incluindo o código, as bibliotecas, as dependências e até mesmo um sistema operacional. Isso significa que é possível executar aplicativos em qualquer ambiente, seja no ambiente local ou em um servidor na nuvem, sem se preocupar com conflitos de software ou problemas de compatibilidade.
O que é Dockerfile?
O Dockerfile é como uma receita detalhada que guia o passo a passo na criação de uma imagem Docker de maneira personalizada para as próprias necessidades. Cada linha do Dockerfile representa um comando específico que modifica o estado da imagem, desde a instalação de softwares até a configuração de variáveis de ambiente.
Estrutura
Um Dockerfile segue um formato específico, composto por seções distintas que definem as etapas da construção da imagem. As principais delas são:
- FROM: Define a imagem base a partir da qual a sua imagem será construída. Essa imagem base pode ser uma imagem oficial do Docker Hub ou uma imagem personalizada já criada.
- WORKDIR: Define o diretório de trabalho padrão para o container. Todos os comandos subsequentes serão executados nesse diretório.
- RUN: Executa comandos no sistema operacional da imagem. Essa seção é utilizada para instalar softwares, configurar o ambiente, copiar arquivos e realizar diversas outras tarefas essenciais.
- COPY: Copia arquivos do host para o container. Este comando é útil para incluir arquivos de configuração, scripts, código-fonte e outros recursos necessários.
- ENV: Define variáveis de ambiente que serão acessíveis dentro do container, essas variáveis podem ser utilizadas para armazenar configurações importantes.
- EXPOSE: Define as portas que o container irá expor externamente. Isso permite que outras aplicações se comuniquem com o seu container através dessas portas.
- CMD: Define o comando que será executado quando o container for iniciado. Esse comando é tipicamente o ponto de entrada da aplicação.
Exemplo
Neste exemplo, vamos criar um simples código em python para printar que a execução do container deu certo.
Com isto, vamos criar um Dockerfile com alguns dos comandos essenciais da estrutura:
Neste Dockerfile, é utilizada uma imagem do python:3.9, define-se o diretório padrão, adiciona-se o arquivo .py neste diretório e executa-se o arquivo para retornar a mensagem do código. Feito isso, basta construir a imagem e executar o contêiner.
Conclusão
Tanto o Docker como o Dockerfile são ferramentas essenciais para desenvolvedores e profissionais de DevOps que desejam construir e gerenciar aplicações robustas, flexíveis e escaláveis na cloud. Juntos, eles formam uma poderosa combinação que impulsiona a agilidade, a confiabilidade e a eficiência do desenvolvimento de software em ambientes de cloud Computing.