Instalar Docker na VPS Ubuntu: passo a passo seguro
Veja como instalar o Docker na VPS Ubuntu pelo repositório oficial, testar, usar sem sudo, rodar o Compose e evitar a armadilha do firewall.
Por Redação Eleven Host · @robson.direitodigital · 27 de outubro de 2026 · 7 min de leitura

Capa da Redação Eleven Host para o guia: Instalar Docker na VPS Ubuntu: passo a passo seguro Arte: Eleven Host
Para instalar Docker na VPS Ubuntu, adicione o repositório oficial da Docker, instale o pacote docker-ce com o apt e teste com sudo docker run hello-world. Este guia mostra a ordem dos comandos, o uso sem sudo e o cuidado com o firewall.
O que é Docker e quando vale na VPS
Docker é um programa que roda aplicações em containers. Pense em um container como um aplicativo embalado com tudo de que ele precisa para funcionar, isolado do resto do servidor. Você baixa a "imagem" pronta, sobe o container e, quando não quiser mais, remove.
Ele é útil quando você quer rodar uma ferramenta que já vem empacotada, como um n8n, ou manter vários serviços separados na mesma VPS. Se o seu projeto é um site simples, instalar direto no servidor também é um caminho válido. A escolha depende do que você vai rodar.
Este guia é a base: instala o Docker e o Compose e mostra os cuidados. Para instalar uma ferramenta específica em cima dele, veja o guia Instalar n8n na VPS: passo a passo com Docker.
Antes de começar: confira o Ubuntu
A documentação oficial da Docker lista estas versões do Ubuntu (64 bits) como suportadas: 26.10, 26.04 LTS, 24.04 LTS e 22.04 LTS. Veja qual é a sua:
cat /etc/os-release
Se você ainda não entra na VPS por chave, veja o guia Como criar chave SSH e entrar na VPS sem senha. Os comandos abaixo usam sudo, então rode-os com um usuário que tenha essa permissão.
Remova pacotes que conflitam
A Docker lista alguns pacotes que conflitam com a instalação oficial. Este comando remove os que existirem:
sudo apt remove docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc
O apt avisa se algum deles não estiver instalado, e isso não é problema.
Instalar Docker pelo repositório oficial
Este é o método recomendado pela Docker. Siga os passos na ordem:
- Atualize a lista de pacotes e instale o que o download precisa:
sudo apt updatee depoissudo apt install ca-certificates curl - Crie a pasta das chaves:
sudo install -m 0755 -d /etc/apt/keyrings - Baixe a chave oficial da Docker:
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc - Libere a leitura da chave:
sudo chmod a+r /etc/apt/keyrings/docker.asc - Adicione o repositório (é um comando só, em uma linha):
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null - Atualize a lista de novo, agora com o repositório da Docker:
sudo apt update - Instale o Docker e os plugins:
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Para garantir que o serviço sobe junto com o servidor, rode sudo systemctl enable docker.service e sudo systemctl enable containerd.service. No Ubuntu, a documentação diz que isso já vem habilitado por padrão.
Testar com o hello-world
Rode o container de teste:
sudo docker run hello-world
Ele baixa uma imagem pequena, imprime uma mensagem de confirmação e sai. Se aparecer um erro de conexão, veja o estado do serviço com sudo systemctl status docker. Se não estiver rodando, inicie com sudo systemctl start docker.
Quer um servidor para rodar seus containers? Veja os planos de VPS a partir de R$ 17,00/mês, no Plano Bronze; confira na loja o que cada plano inclui. Ver planos de VPS
Usar o Docker sem sudo
Por padrão, o Docker pede sudo. Para rodar sem ele, coloque o seu usuário no grupo docker:
sudo groupadd docker(se o grupo já existir, o comando avisa e segue)sudo usermod -aG docker $USERnewgrp docker(ou saia da sessão SSH e entre de novo)
Depois, docker run hello-world deve funcionar sem o sudo.
Segundo a Docker, o grupo docker concede privilégios equivalentes aos de root ao usuário. Adicione ao grupo só quem você confia.
Docker e firewall: o alerta da documentação oficial
A documentação oficial traz um aviso importante: se você usa ufw ou firewalld, as portas que o Docker publica nos containers passam por fora das regras desse firewall. Na prática, abrir um container com -p 8080:80 pode deixar a porta 8080 acessível pela internet mesmo que o ufw não a tenha liberado.
Para regras próprias, a Docker indica a cadeia DOCKER-USER do iptables. Quando o container fica atrás do Nginx, publique a porta só no endereço local:
- No
docker run:-p 127.0.0.1:8080:80 - No Compose:
"127.0.0.1:8080:80"
Assim, só a própria VPS acessa o container, e o Nginx faz a ponte com a internet. Para revisar as regras do servidor, veja Firewall para VPS: como proteger seu servidor.
Docker Compose: vários containers em um arquivo
O plugin do Compose foi instalado junto com o Docker. O comando é docker compose, com espaço. Você descreve os serviços em um arquivo compose.yaml (ou docker-compose.yml) na pasta do projeto e usa estes comandos:
docker compose up -d: sobe os serviços em segundo plano.docker compose ps: mostra o estado dos serviços.docker compose logs -f: acompanha os logs.docker compose pulle depoisdocker compose up -d: atualiza as imagens.docker compose down: para e remove os containers. Os volumes nomeados ficam.
Comandos do dia a dia
docker ps: lista os containers rodando. Com-a, mostra também os parados.docker logs nome --tail 50: as últimas 50 linhas do log de um container.docker images: lista as imagens baixadas.docker stop nome: para um container.docker rm nome: remove um container parado.docker system df: mostra o espaço usado pelo Docker.docker system prune: apaga o que está parado e sem uso. Ele pede confirmação, então leia antes de aceitar.
Se o site responder com erro depois de subir um container atrás do Nginx, o docker ps e o docker logs são o primeiro passo. O guia Erro 502 Bad Gateway: o que é e como resolver na VPS detalha esse caso.
Volumes: onde ficam os seus dados
O que fica só dentro do container some quando o container é removido. Para guardar banco de dados, uploads e configurações, use volumes: -v nome:/caminho no docker run ou a chave volumes: no Compose.
O script get.docker.com: só para teste
A Docker também oferece um script de conveniência:
curl -fsSL https://get.docker.com -o get-docker.shsudo sh ./get-docker.sh --dry-run(mostra o que seria feito, sem instalar)sudo sh get-docker.sh
A própria Docker recomenda esse script apenas para teste e desenvolvimento, não para produção: ele instala dependências sem perguntar, pega a última versão e pode trazer mudanças grandes. Também não serve para atualizar uma instalação existente. Na VPS que vai ficar no ar, use o repositório oficial, como nos passos acima.
Checklist depois de instalar
- Conferi a versão do Ubuntu com
cat /etc/os-release. - Removi os pacotes que conflitam.
- Instalei pelo repositório oficial e testei com
sudo docker run hello-world. - Só coloquei no grupo
dockerquem eu confio. - Publiquei as portas atrás do Nginx como
127.0.0.1:porta:porta. - Usei volumes para o que não pode ser perdido.
- Li o resultado do
docker system pruneantes de confirmar.
Vai usar o Docker com um site ou sistema seu? Registre um domínio para ele: com domínio registrado na Eleven Host, o DNS gerenciado na rede da Cloudflare é grátis, com painel na área do cliente. Registrar domínio
Perguntas frequentes
Como instalar Docker na VPS Ubuntu?
Adicione o repositório oficial da Docker, rode sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin e teste com sudo docker run hello-world.
Como usar o Docker sem sudo?
Adicione o seu usuário ao grupo docker com sudo usermod -aG docker $USER e rode newgrp docker ou entre de novo na sessão SSH. Lembre que, segundo a Docker, esse grupo equivale a privilégios de root.
O ufw bloqueia as portas dos containers?
Segundo a documentação da Docker, as portas publicadas passam por fora das regras do ufw e do firewalld. Para um container atrás do Nginx, publique só no endereço local, como 127.0.0.1:8080:80.
Qual a diferença entre docker compose e docker-compose?
O plugin instalado neste guia usa docker compose, com espaço. O pacote antigo docker-compose está na lista de pacotes que conflitam e que o guia manda remover.
Posso usar o script get.docker.com?
Para teste, sim. A Docker não recomenda esse script para produção.