Base de Conhecimento

Instalar Docker na VPS Ubuntu: passo a passo seguro

  • instalar docker na vps, docker, ubuntu, vps, docker compose
  • Usuários acharam útil: 0

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

Arte da Eleven Host: janela de terminal com o título: Instalar Docker na VPS Ubuntu: passo a passo seguro

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:

  1. Atualize a lista de pacotes e instale o que o download precisa: sudo apt update e depois sudo apt install ca-certificates curl
  2. Crie a pasta das chaves: sudo install -m 0755 -d /etc/apt/keyrings
  3. Baixe a chave oficial da Docker: sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
  4. Libere a leitura da chave: sudo chmod a+r /etc/apt/keyrings/docker.asc
  5. 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
  6. Atualize a lista de novo, agora com o repositório da Docker: sudo apt update
  7. 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 $USER
  • newgrp 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 pull e depois docker 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.sh
  • sudo 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 docker quem 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 prune antes 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.

Esta resposta lhe foi útil?

Artigos Relacionados