Docker resolveu a bagunça que criei com ferramentas de autoatendimento e passei anos evitando

A auto-hospedagem parece diferente, mas basicamente consiste em instalar um pacote e usá-lo em seu computador. Pode ser um computador Windows ou um sistema Linux e as etapas de instalação podem ser um pouco diferentes, mas o aspecto da instalação permanece quase o mesmo. Quando descobri ferramentas leves e de autoatendimento que me pouparam de assinaturas mensais caras, nunca pensei em usá-las como contêineres Docker. Foi uma ideia complexa que achei muito assustadora e desnecessária no início, pois a instalação normal de um pacote parecia mais conveniente.

Lembro-me de instalar ferramentas como NextCloud, Jellyfin e outras do software DietPi e depois verificar o número da porta correspondente para carregar o portal web. Foi um processo que funcionou sem problemas no início, mas logo se tornou um pouco restritivo. Problemas impensáveis, como travar todo o sistema para corrigir problemas de um único aplicativo ou bagunça de arquivos, foram o que me levou ao Docker.

Ficar longe do Docker foi um grande erro

Eu deveria ter usado antes

Quando você começa a procurar ferramentas, técnicas e dispositivos de autoatendimento que possam executá-los com eficiência, a palavra “Docker” parece aparecer em todos os resultados da pesquisa. Muito poucas tentativas de explicar como ela difere de uma instalação tradicional ou dos benefícios de uma implantação do Docker. Falar sobre conceitos como containers deixa você nervoso e você tenta pular e apenas encontrar um comando para instalar a ferramenta que precisa.

Docker é uma ferramenta CLI e usar uma ferramenta CLI é uma tarefa difícil, ou melhor, foi uma tarefa difícil para um usuário do Windows como eu. Eu tinha um conhecimento básico de sistemas Linux desde o mesmo semestre da faculdade e, embora o currículo me ensinasse todos os comandos do sistema operacional, me apeguei ao aspecto GUI do Ubuntu. O Linux não se tornou popular para mim até que comecei a brincar com distribuições de servidores leves, onde não tive escolha a não ser usar o terminal.

Criar um contêiner Docker é tão fácil quanto colar o comando de inicialização do Docker e o contêiner será iniciado em uma porta específica. Mas o verdadeiro problema surge quando o seu contêiner não está funcionando como deveria e você precisa ver os contêineres ativos, classificar os números das portas ou outros alertas de rede, garantir atualizações oportunas ou acesso aos dados.

Estou feliz por ter aprendido as técnicas CLI primeiro e depois mudado para uma ferramenta GUI como o Portainer porque me ajudou a entender como o Docker faz tudo em segundo plano. Usar o Portainer ou o Dockhand torna o Docker fácil para iniciantes, mas não recomendo ignorar o conhecimento da CLI se você deseja construir e manter um servidor doméstico a longo prazo.

O isolamento é uma bênção para a acomodação

Chega de conflitos de dependência ou problemas de solução de problemas

Uma coisa que não entendi é que quando você instala uma ferramenta auto-hospedada, ela baixa todos os pacotes necessários para executá-la. Cada vez que você instala uma nova ferramenta, ela pode solicitar uma versão diferente de dependências. Por exemplo, uma ferramenta pode exigir uma versão mais antiga do Python, enquanto outra ferramenta não teria problemas em trabalhar com uma versão mais recente. Isso cria um inferno de dependências porque você precisa manter versões diferentes do Python para executar as duas ferramentas, e consertar um problema quebra o outro.

O Docker resolve esse problema sem esforço com isolamento. Ele cria contêineres separados, cada um com todas as dependências, tempos de execução, bibliotecas e outras coisas necessárias para o aplicativo ou ferramenta. Cada contêiner possui seu próprio sistema de arquivos isolado e não pode ser acessado por outros contêineres, a menos que você defina volumes compartilhados ou rede. Portanto, mesmo que uma ferramenta tenha requisitos de pacote específicos, ela ainda poderá ser executada em um contêiner Docker e nunca entrar em conflitos como a instalação tradicional de pacotes. Essa opção me permite experimentar o quanto quiser, sem me preocupar em quebrar as ferramentas de autoatendimento existentes.

Sempre posso experimentar uma nova ferramenta, brincar com suas configurações e jogá-la fora sem me preocupar com o impacto em outros contêineres. Sozinho Docker rm a equipe pode limpar o contêiner e o restante do lote continua como se nada tivesse acontecido. Não preciso desligar ou reiniciar o sistema para solucionar problemas, a menos que haja algo errado com o próprio Docker. O isolamento do contêiner significa que posso forçar a reinicialização de um contêiner individual e usar métodos de solução de problemas apenas para ele.

Atualizações e backups simplificados

Melhor do que gerenciar ferramentas individuais

Cada ferramenta que você usa executa uma atualização para corrigir bugs ou adicionar novos recursos. Instalar novas atualizações em uma ferramenta existente pode não ser tão fácil quanto você pensa. Você também precisará de atualizações de dependências e, muitas vezes, os conflitos podem tornar o processo frustrante. Mas o design do Docker facilita muito as atualizações. Como cada contêiner do Docker é um sistema de arquivos isolado, atualizá-lo geralmente significa extrair a imagem do contêiner mais recente e reconstruí-la. A possibilidade de problemas durante a atualização é mínima. Como o Docker armazena dados e arquivos de aplicativos em pastas persistentes que não fazem parte do contêiner, você pode até mesmo desmontar o contêiner e reconstruí-lo.

Essa flexibilidade está faltando na instalação de um pacote tradicional, onde as alterações podem afetar diretamente seus dados pessoais. Para evitar tragédias, pode ser necessário fazer backups com antecedência. Um contêiner Docker só precisa armazenar pastas vinculáveis ​​ou volumes Docker, bem como Docker Compose e outros arquivos de configuração. Usando-os, você pode criar facilmente um contêiner na mesma ou em qualquer outra máquina. Esse recurso torna o Docker portátil porque o contêiner em si é descartável e seus dados permanecem separados.

Não perca o Docker

Recomendo que você não cometa o mesmo erro que cometi no início de minha jornada. Aborde-o com curiosidade e aprenda os princípios da CLI antes de usar uma ferramenta GUI como o Dockhand. A maioria das tarefas descritas acima torna-se fácil com uma ferramenta GUI e é melhor aproveitar as vantagens da abordagem em contêineres. Mantém tudo organizado, isola arquivos e é fácil de atualizar, mantendo seu sistema organizado.

Link da fonte