Considerações Finais
E com isso chegamos ao final do nosso curso de Docker.
Começamos instalando o Docker e entendendo por que ele pode ser tão útil no dia a dia de desenvolvimento. Depois, passamos pelas imagens, aprendemos a criar e gerenciar containers, vimos como trabalhar com volumes para lidar com os arquivos e dados da aplicação, e finalmente aprendemos como conectar o container ao nosso computador através das portas e configurar nossa aplicação usando variáveis de ambiente.
No começo, pode parecer que são vários conceitos diferentes e que precisamos decorar um monte de comandos para conseguir trabalhar com Docker. Mas, quando juntamos tudo que vimos, fica mais fácil perceber que cada uma dessas ferramentas resolve uma parte diferente do mesmo problema.
Para não esquecer, podemos resumir os principais conceitos que vimos da seguinte maneira:
| Conceito | O que precisamos lembrar |
|---|---|
| Imagem | É o artefato/modelo estático usado para criar containers. |
| Container | É a instância executável criada a partir de uma imagem. |
| Volume | Permite manter dados que precisam sobreviver ao ciclo de vida do container. |
| Porta | Permite a comunicação entre ambientes, conectando uma porta do computador à porta do container. |
| Variável de ambiente | Permite definir a configuração externa à aplicação, sem precisar alterar o código. |
Se você entender essa relação, já tem uma boa parte do modelo mental necessário para começar a trabalhar com Docker no dia a dia.
A imagem define o ambiente.
O container executa esse ambiente.
O volume mantém os dados que precisam sobreviver.
A porta permite a comunicação com a aplicação.
E as variáveis de ambiente permitem configurar o comportamento da aplicação sem precisar colocar essas configurações diretamente no código.
E não se preocupe em decorar todos os comandos que vimos durante o curso. O mais importante é entender o que você está tentando fazer e qual conceito do Docker resolve aquele problema. Com o tempo, os comandos acabam se tornando tão naturais quanto aqueles que você já utiliza no terminal ou no Git.
Também é importante lembrar de uma das principais ideias que vimos desde a primeira aula: o Docker não existe apenas para colocar sua aplicação dentro de um container. Uma das grandes vantagens é conseguir descrever o ambiente necessário para executar essa aplicação e reproduzi-lo de maneira consistente.
É justamente por isso que conceitos como imagens, containers, volumes, portas e variáveis de ambiente começam a fazer sentido quando trabalhamos juntos.
Até aqui, trabalhamos principalmente com um container por vez. Isso foi proposital, porque antes de tentar juntar várias coisas, é importante entender como cada uma delas funciona individualmente.
Mas imagine agora que nossa aplicação cresceu.
Temos uma API rodando em um container, um banco de dados PostgreSQL em outro, talvez um Redis para cache e ainda outros serviços que nossa aplicação precisa para funcionar.
Será que realmente queremos ficar escrevendo vários comandos docker run, configurando manualmente portas, volumes, variáveis de ambiente e nomes para cada container?
Provavelmente não.
E é justamente aí que entra o próximo passo.
No nosso próximo curso, vamos conhecer o Docker Compose, uma ferramenta que permite definir e gerenciar aplicações compostas por múltiplos containers de maneira muito mais simples.
Agora que você já conhece as peças individualmente, chegou a hora de aprender a juntar essas peças para montar uma aplicação completa.
Se você chegou até aqui, já passou daquela primeira barreira que normalmente torna o Docker assustador. A partir daqui, o objetivo é colocar em prática todo o conhecimento de forma profissional com o Docker Compose exatamente ou quase de como se é utilizado no dia a dia de uma empresa.
Fica ligado para o próximo curso de Docker Compose e, claro, assista também à versão em vídeo no YouTube. Se ficou alguma dúvida durante o curso, deixa um comentário avisando que você veio pelo site.
Até a próxima.