Apresentação de Docker
Docker é um motor de contêineres: empacota uma aplicação e as suas dependências numa imagem e executa-a de forma isolada sobre o kernel do anfitrião. Quem desenvolve usa-o para ter o mesmo ambiente em local e em produção. As equipas pequenas recorrem a ele para alojar vários serviços numa só máquina sem que as dependências entrem em conflito.
Na entrega, o seu VPS Linux (Debian 12, Debian 13, Ubuntu 22.04 ou 24.04, e ainda Ubuntu 20.04 com as ressalvas indicadas mais abaixo) traz o Docker Engine instalado a partir do repositório apt oficial da Docker. Os pacotes docker-ce, docker-ce-cli, containerd.io, docker-buildx-plugin e docker-compose-plugin estão instalados, e os serviços docker e containerd ficam ativos no arranque.
A chave de assinatura do repositório é verificada pela impressão digital antes da instalação. No fim da receita é executado um contêiner hello-world para confirmar que o daemon responde. A partir daí o servidor é seu: nenhum utilizador é adicionado por omissão ao grupo docker e nenhuma aplicação é implementada em seu nome.
O que pode fazer com Docker
Repositório apt oficial da Docker
Os pacotes vêm de download.docker.com, com uma chave de assinatura cuja impressão digital é verificada. As atualizações passam pelo apt, como o resto do sistema.
Compose e Buildx incluídos
O plugin Compose usa-se com
docker compose(sem hífen) e o Buildx serve para construir as suas imagens. Pode implementar uma stack com vários serviços logo na primeira ligação.Rotação de logs pré-configurada
Se
/etc/docker/daemon.jsonnão existir, a receita escreve-o com o driverjson-file, 10 MB por ficheiro e 3 ficheiros guardados. Os logs dos contêineres não enchem o disco em silêncio.Pacotes em conflito removidos
Pacotes não oficiais como
docker.io,podman-docker,containerdouruncsão removidos antes da instalação. Isto evita misturas de versões que fazem o daemon falhar.Acesso equivalente a root controlado
Nenhuma conta é adicionada ao grupo
docker, que equivale a acesso root. Você decide quem recebe esse privilégio.Registo de instalação legível
Cada passo fica registado em
/var/log/docker-install.log, e o ficheiro/var/lib/docker-install.doneconfirma que a receita chegou ao fim.
Começar com Docker
Da encomenda à produção em poucos minutos.
- 1
Encomende o VPS com Docker selecionado
Escolha um VPS Linux em Paris ou Frankfurt, selecione Debian 12, Debian 13, Ubuntu 22.04 ou 24.04 e marque Docker no separador «Aplicações» do formulário de encomenda.
- 2
Ligue-se e verifique a instalação
Quando o servidor for entregue, ligue-se por SSH com os acessos recebidos. A instalação corre no primeiro arranque: se o ficheiro marcador ainda não existir, aguarde um pouco e acompanhe o registo.
Bashssh USER@SERVER_IP cat /var/lib/docker-install.done tail -n 20 /var/log/docker-install.log - 3
Execute um primeiro contêiner
Confirme as versões e arranque um servidor web de teste. A porta é publicada apenas em 127.0.0.1, por isso não fica exposta à Internet enquanto testa.
Bashdocker --version && docker compose version docker run -d --name web -p 127.0.0.1:8080:80 nginx curl -I http://127.0.0.1:8080 - 4
Proteja antes de ir para produção
Coloque um reverse proxy (Caddy, Traefik ou Nginx) à frente dos serviços para tratar de YOUR_DOMAIN em HTTPS e publique na Internet apenas as portas 80 e 443. Mantenha as restantes em 127.0.0.1, porque as portas publicadas pelo Docker contornam o ufw. Por fim, faça cópias de segurança dos volumes e dos ficheiros compose.
Bashdocker volume ls docker compose up -d
Casos de uso de Docker
Alojar vários serviços isolados
Uma base de dados PostgreSQL, uma aplicação web e uma ferramenta de monitorização correm cada uma no seu contêiner, descritas num único ficheiro
compose.yaml. Pode atualizá-las ou reiniciá-las em separado.Implementar uma aplicação auto-alojada
Muitos projetos open source (n8n, Nextcloud, Gitea, Uptime Kuma…) publicam uma imagem Docker e um exemplo de Compose. O VPS está pronto para as receber sem preparação prévia.
Construir e testar imagens
Com o Buildx, constrói as imagens numa máquina remota dedicada, sem sobrecarregar o seu computador. É útil para uma cadeia de CI leve ou para testes de integração.
Replicar a produção em pré-produção
Um segundo VPS com a mesma versão do Docker e os mesmos ficheiros Compose dá-lhe um ambiente de testes próximo da produção, com pouco esforço de administração.
Perguntas frequentes sobre Docker
A receita instala docker-ce, docker-ce-cli, containerd.io, docker-buildx-plugin e docker-compose-plugin a partir do repositório apt oficial da Docker. Os serviços docker e containerd ficam ativos no arranque. Com o Compose v2, o comando é docker compose e não docker-compose.
Mais sobre Docker
Firewall e portas publicadas
É a armadilha mais comum. Quando publica uma porta com -p 8080:80, o Docker escreve as suas próprias regras iptables e o tráfego passa antes das do ufw ou do firewalld. Um ufw deny 8080 não impede, portanto, nada.
Há duas abordagens fiáveis: ligar a porta à interface local (-p 127.0.0.1:8080:80) e expor o serviço através de um reverse proxy, ou filtrar na cadeia DOCKER-USER, que o Docker consulta antes das suas próprias regras. A primeira é mais simples e chega para a maioria dos casos.
Grupo docker e sudo
Pertencer ao grupo docker equivale a ter direitos de root na máquina: um contêiner pode montar o sistema de ficheiros do anfitrião. A receita não adiciona ninguém a este grupo. Se quiser trabalhar com uma conta sem privilégios, adicione-a você mesmo e volte a iniciar sessão.
Bashsudo usermod -aG docker USER
Logs dos contêineres
O ficheiro /etc/docker/daemon.json escrito na entrega limita cada contêiner a 3 ficheiros de 10 MB. Só é criado se ainda não existir. Para alterar estes valores, edite-o e reinicie o daemon. As novas definições só se aplicam aos contêineres criados depois do reinício.
Bashsudo systemctl restart docker
Atualizações
O repositório da Docker está declarado em /etc/apt/sources.list.d/docker.sources. As novas versões chegam, por isso, com as atualizações habituais do apt. Agende-as para um momento em que um reinício do daemon seja aceitável, pois pode interromper os contêineres se a opção live-restore não estiver ativa.
Bashsudo apt update && sudo apt install --only-upgrade docker-ce docker-ce-cli containerd.io
Ubuntu 20.04
A Docker deixou de suportar oficialmente o Ubuntu 20.04. Mesmo assim, a receita tenta instalar se o repositório da Docker ainda publicar essa versão, e regista um aviso no registo. Para um servidor de produção, prefira Ubuntu 22.04, Ubuntu 24.04, Debian 12 ou Debian 13, todas suportadas.
Cópias de segurança
As imagens voltam a descarregar-se, os seus dados não. Faça cópias dos volumes nomeados, dos diretórios montados e dos ficheiros compose.yaml com as respetivas variáveis de ambiente. Numa base de dados, prefira uma exportação lógica (pg_dump, mysqldump) a copiar o volume com a base em funcionamento.
