docker
Docker numa VPS para iniciantes: o que é, quando você precisa e quando não
Um guia em linguagem simples sobre Docker no seu servidor: o que ele faz, quando ajuda e quando só acrescenta mais uma camada para gerenciar.
Você quer rodar um app no seu servidor, mas todo guia de repente diz “use Docker” como se fosse óbvio. Agora você não está mais só se perguntando como colocar seu site no ar. Você está se perguntando se precisa de uma ferramenta inteira a mais antes mesmo de conseguir começar.
Docker pode ser útil. Também pode ser desnecessário. Para quem está começando, a pergunta importante não é “Docker é moderno?”. É “Docker resolve um problema que eu realmente tenho?”.
O que é Docker em palavras simples
Docker é um jeito de rodar software dentro de um contêiner. Um contêiner é como uma marmita pronta para um app: o app, seus ingredientes e as instruções de como ele deve rodar vêm todos empacotados juntos.
Sem o Docker, você instala os ingredientes do app diretamente no servidor. Isso pode significar uma certa versão de uma linguagem de programação, um banco de dados, ferramentas de imagem, workers em segundo plano e outras peças. Tudo divide a mesma cozinha.
Com o Docker, cada app pode trazer uma parte maior da própria cozinha consigo. Um app pode precisar de uma versão de uma ferramenta, enquanto outro app precisa de uma versão diferente, e é menos provável que eles pisem no pé um do outro.
É esse o atrativo. O Docker dá aos apps fronteiras mais claras.
Mas a marmita continua dentro da sua casa. Você continua tendo um servidor para atualizar, proteger, fazer backup e entender. O Docker não elimina a responsabilidade pelo servidor. Ele muda o formato dela.
Quando o Docker conquista o seu lugar
O Docker é útil quando você roda apps com muitas partes em movimento.
Um site simples pode precisar só de um servidor web e de uma pasta de arquivos. Um app mais complexo pode precisar de um banco de dados, um cache, um worker que envia e-mail, tarefas agendadas e uma versão específica de runtime. O Docker pode manter todas essas peças descritas em um único lugar, em vez de espalhadas pelo servidor como bilhetes autoadesivos em paredes diferentes.
O Docker também ajuda quando você roda mais de um projeto no mesmo servidor. Imagine dois projetos dividindo a mesma bancada. Se um projeto precisa de uma ferramenta mais nova e o outro quebra quando essa ferramenta muda, você tem um conflito. Os contêineres dão a cada projeto a sua própria bandeja de ferramentas.
Isso importa principalmente quando o seu app tem uma receita clara fornecida pelo desenvolvedor. Muitos apps self-hosted publicam instruções de Docker porque isso reduz os problemas do tipo “na minha máquina funciona”. O app espera o mesmo ambiente básico em todo lugar.
Se o seu objetivo é hospedar vários sites ou apps, o problema maior é mantê-los separados e compreensíveis. Esse também é o tema em hospedar vários sites em uma VPS: a bagunça geralmente começa quando os projetos se misturam e ninguém lembra mais o que pertence a quê.
Quando você provavelmente não precisa de Docker
Você não precisa de Docker só porque tem um servidor.
Se você está hospedando um site estático básico, um pequeno site WordPress ou um app simples com requisitos comuns, o Docker pode ser um móvel a mais em um cômodo pequeno. Pode funcionar, mas talvez não deixe o cômodo mais fácil de usar.
Para quem está começando, a configuração boa mais simples costuma ser a melhor. Um domínio aponta para o servidor. O servidor web recebe o tráfego. O HTTPS mantém a conexão privada. O app roda em um lugar previsível. Existem backups. Você entende o que depende do quê.
Esse entendimento não é um detalhe qualquer. É o que ajuda você a consertar as coisas mais tarde.
Se a sua verdadeira pergunta é “Como coloco um app pequeno no ar sem aprender uma profissão nova?”, comece pelo caminho mais simples em publicar uma pequena web app sem DevOps. O Docker pode chegar depois, se o seu app crescer a ponto de precisar dele.
Os trade-offs que os iniciantes sentem primeiro
O Docker acrescenta uma camada. Às vezes essa camada protege você. Às vezes ela esconde o que está acontecendo.
Quando algo quebra sem o Docker, você pode checar o servidor web, o app, o banco de dados e o domínio. Com o Docker, você também pode precisar entender contêineres, imagens, volumes, redes internas e como o tráfego chega ao contêiner certo.
Pense nisso como colocar o seu app em um prédio de apartamentos. As paredes ajudam a manter os vizinhos separados. Mas agora você também precisa saber qual campainha toca em qual apartamento, onde fica o depósito e o que acontece se a entrada principal do prédio estiver trancada.
Os problemas mais comuns para quem está começando não são dramáticos. São comuns e frustrantes:
- O app roda, mas o site não carrega.
- Um arquivo foi salvo no lugar errado e desaparece depois de uma reconstrução.
- O banco de dados vive em um lugar de que você se esqueceu.
- O HTTPS funciona para um projeto, mas não para outro.
- Meses depois, você não consegue mais dizer quais partes ainda são necessárias.
Os backups merecem atenção especial. Uma configuração Docker pode receber backup com segurança, mas só se você souber onde os dados reais vivem. O contêiner muitas vezes é substituível. Os arquivos enviados e o banco de dados não são. Se essa diferença não estiver clara para você, leia como fazer o backup do seu servidor e de fato restaurá-lo antes de confiar dados importantes a qualquer configuração.
O Docker não é ruim por causa desses trade-offs. Ele só não é mágica. Ele te dá estrutura, mas você ainda precisa de um mapa.
O atalho
O Server Manager ajuda quando a parte difícil não é o Docker em si, mas manter o servidor compreensível enquanto projetos reais vivem sobre ele.
Se você quer rodar apps sem transformar o servidor em um monte de escolhas lembradas pela metade, ele mantém visíveis as relações importantes: qual projeto pertence a qual domínio, onde o HTTPS está conectado e o que está rodando onde. Isso poupa você de problemas comuns, como um projeto quebrar outro, um certificado errado ou expirado tirar um site do ar, ou perder o fio da configuração meses depois.
O verdadeiro benefício é que o seu servidor continua legível ao longo do tempo. Quer um app use contêineres ou uma configuração mais simples, você pode voltar depois e ainda entender o formato de tudo. Isso importa quando você precisa resolver um problema de carregamento, mover um projeto ou lembrar por que algo foi configurado daquele jeito.
O ganho: escolha a configuração mais simples que atende você
Vale a pena usar Docker quando ele resolve um problema real: requisitos conflitantes entre apps, várias partes em movimento ou um projeto pensado para rodar em contêineres.
Ele não é obrigatório para todo servidor, todo site ou todo iniciante. Se uma configuração simples é mais fácil de entender e atende às suas necessidades, ela não é menos profissional. É responsável.
O seu ganho é um servidor que você consegue gerenciar hoje e ainda entender amanhã. O Docker pode fazer parte disso, mas deveria ser uma ferramenta que você escolhe por um motivo, não um pedágio que você atravessa só porque todo guia diz que sim.