Instalando Docker e Portainer no Linux
Nem tudo deve viver diretamente em seu sistema operacional. Ferramentas como o SQL Server têm uma pegada significativa de recursos, e executá-las em metal nu significa que esses recursos são consumidos, esteja você precisando deles ou não. Contêineres resolvem isso: você cria um quando precisa e para-o quando não precisa. O Docker é o motor que impulsiona esse fluxo de trabalho e o Portainer é a GUI leve que o mantém gerenciável sem memorizar uma biblioteca de comandos de CLI.
Este detalhamento, com base na série de desenvolvimento Linux de Tim Corey, detalha a configuração completa no Ubuntu: registrar o repositório apt, configurar o motor, remover o requisito de sudo para máquinas pessoais e implantar o Portainer CE como um contêiner persistente.
Passo 1: Adicionar o Repositório apt do Docker
[3:10 - 6:00] Antes que o Docker possa ser instalado via apt, você precisa registrar a fonte de pacotes do Docker e dar ao seu sistema uma razão para confiar nela. O Docker fornece um bloco único de comandos copiáveis que trata de tudo isso em uma única colagem. Vá para docs.docker.com, navegue até a seção Instalar e selecione Ubuntu. Os comandos em "Instalar usando o repositório apt" são o que você deseja.
Esse bloco executa várias operações em sequência: instala as ferramentas de certificado necessárias, baixa a chave GPG oficial do Docker, ajusta suas permissões e escreve o endereço do repositório em sua lista de fontes apt. Execute todo o bloco de uma vez copiando-o dos docs e colando-o em um terminal com Ctrl+Shift+V.
Um ponto importante a enfatizar: não adicione cegamente novas fontes de pacote. Verifique se você confia na fonte antes de instalar sua certificação. O Docker é respeitável e vale a pena confiar, mas o princípio se aplica a toda fonte que você adiciona. Essa abordagem é na verdade mais rigorosa do que o que muitos gerenciadores de pacotes fazem por padrão, o que é uma característica, não uma complicação.
Passo 2: Instalando o Docker Engine
[6:00 - 7:10] Com o repositório registrado, instalar o Docker é um único comando apt:
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Confirme quando solicitado, e o apt lida com o download e a instalação. O Docker é configurado para iniciar automaticamente na inicialização, então ele estará rodando em segundo plano após cada reinicialização, sem passos extras.
Para confirmar que tudo funciona, execute o contêiner hello-world:
sudo docker run hello-world
sudo docker run hello-world
O Docker baixa a imagem, executa-a e imprime uma mensagem de confirmação. Essa saída significa que sua instalação está funcionando. O contêiner hello-world é projetado para executar uma vez e sair; ele existe apenas para verificar se o motor está respondendo.
Passo 3: Executando o Docker Sem sudo (Apenas Máquinas Pessoais)
[7:45 - 10:30] Por padrão, os comandos do Docker requerem sudo porque gerenciar contêineres é uma operação privilegiada. Em um servidor compartilhado ou máquina de produção, deixe isso como está. Para uma máquina de desenvolvimento pessoal que você controla sozinho, adicionando-se ao grupo docker remove o prefixo:
sudo usermod -aG docker $USER
sudo usermod -aG docker $USER
-aG anexa a conta atual a ele. A distinção de maiúsculas e minúsculas importa: $USER deve estar em maiúsculas. A mudança não entra em vigor até que você saia e entre novamente; uma reinicialização completa do sistema é muitas vezes mais confiável do que um simples log-out para que a adesão ao grupo se aplique corretamente. Uma vez feito isso, docker run hello-world funciona sem sudo.
Isso é uma troca de conveniência, não uma melhoria de segurança. Mantenha isso apenas para máquinas de desenvolvimento.
Passo 4: Criando um Volume para o Portainer
[11:30 - 12:45] Antes de iniciar o Portainer, crie um volume nomeado para persistir seus dados através das reinicializações e substituições do contêiner:
docker volume create portainer_data
docker volume create portainer_data
Os contêineres são efêmeros por design, e destruir um limpa tudo armazenado dentro dele. Um volume vive fora do ciclo de vida do contêiner em um caminho gerenciado pelo Docker, então a configuração do Portainer sobrevive, mesmo se você o destruir e reconstruí-lo.
Passo 5: Executando o Contêiner Portainer
[12:45 - 14:10] Portainer CE é em si um contêiner Docker. O comando completo de execução é:
docker run -d -p 9000:9000 --name portainer \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce
docker run -d -p 9000:9000 --name portainer \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce
Explicando: -d executa o contêiner destacado para que ele permaneça em segundo plano. -p 9000:9000 expõe a porta 9000 do host e a redireciona para o endereço interno correspondente dentro do contêiner. O primeiro -v monta o socket Docker, dando ao Portainer visibilidade e controle sobre seus outros contêineres e imagens. Conectar o socket dessa forma é o que permite que a GUI leia e gerencie todo o seu ambiente Docker. O segundo -v vincula o volume que você acabou de criar a /data dentro do contêiner, persistindo seu estado.
Puxe de portainer/portainer-ce (Community Edition). O site portainer.io começa com o nível Enterprise pago, mas o CE é gratuito e totalmente capaz para uso local e pessoal.
Navegando pela UI do Portainer
[14:10 - 17:30] Assim que o contêiner iniciar, abra um navegador e vá para http://localhost:9000. O Portainer solicita que você crie uma senha de administrador no primeiro acesso; deve ter pelo menos 12 caracteres. Após o login, clique no assistente de configuração rápida sem adicionar ambientes extras, depois selecione o ambiente local no painel.
A visão inicial mostra um resumo: imagens baixadas, contêineres presentes, redes configuradas e volumes em uso. Clicar em cada seção dá a você controle total. Sob Imagens, você verá hello-world e a imagem Portainer CE das duas pulls realizadas durante a configuração. Em Contêineres, ambas as execuções hello-world aparecem em um estado parado ao lado do próprio Portainer, que está rodando ativamente.
No painel de Contêineres, você pode iniciar, parar ou remover qualquer entrada. Selecionar um contêiner e clicar em Logs mostra sua saída. As entradas do hello-world exibem o texto de saudação familiar de ambas as vezes que foi executado. Reiniciar um contêiner e verificar seus logs confirma que uma nova saída é adicionada abaixo da primeira.
Os volumes são listados com seus caminhos de montagem. A entrada portainer_data mostra sua localização em /var/lib/docker/volumes/, onde o engine armazena todos os dados de volume nomeado no disco.
Por Que Escolher o Portainer em Vez do Docker Desktop
[17:30 - 18:10] O Docker Desktop é enviado com uma GUI, mas tem um overhead significativo, o que importa em uma máquina de desenvolvimento Linux onde você deseja recursos do sistema disponíveis para suas cargas de trabalho reais. O Portainer CE roda como um contêiner e consome muito menos memória e CPU. Ele cobre as necessidades práticas: navegar por imagens e contêineres, ler logs, gerenciar volumes, iniciar e parar serviços, tudo sem o peso.
O que vem a seguir
[17:50 - 18:30] Com Docker e Portainer no local, o próximo passo na série é executar o SQL Server como um contêiner. Um único comando docker run puxa a imagem e inicia uma instância. No painel de contêineres do Portainer, você pode pará-lo quando sua sessão terminar e reiniciá-lo quando precisar novamente. Este padrão se aplica igualmente ao Redis e outras ferramentas de infraestrutura que são caras para rodar continuamente, mas simples de conter.
Conclusão
[18:30 - fim] Para recapitular: registre o repositório apt do Docker com sua chave GPG, instale o engine via apt, opcionalmente adicione seu usuário ao grupo docker em máquinas pessoais, crie um volume nomeado para o Portainer e execute o contêiner portainer/portainer-ce mapeado para a porta 9000. A partir desse ponto, localhost:9000 fornece uma GUI que cobre o trabalho diário de gerenciamento de contêineres no Linux sem precisar tocar no CLI para tarefas rotineiras.
Assista ao vídeo completo no canal do YouTube de Tim Corey para seguir a instalação em uma máquina ao vivo.
