Blog

Tutoriais, guias e novidades do produto.

Desenvolvedores

O que é o Docker e como usá-lo em um VPS?

3 novembro 2026 6 min de leitura
Compartilhar esta publicação

O Docker é uma ferramenta que executa um aplicativo, junto com tudo de que ele precisa, dentro de um pacote isolado chamado contêiner. Em um VPS, usar o Docker significa iniciar um app a partir de um pacote pronto, em vez de instalá-lo peça por peça no servidor. A instalação e a remoção levam alguns comandos, e os apps não atrapalham as configurações uns dos outros.

Ao contrário de uma máquina virtual, um contêiner não carrega o próprio sistema operacional. Ele compartilha o kernel do servidor, então inicia em segundos e usa pouca memória. Em troca, o isolamento dele não é tão forte quanto o de uma máquina virtual.

Quatro termos bastam para começar

TermoO que significa
ImagemO pacote pronto de um aplicativo. É baixado de um registro como o Docker Hub.
ContêinerUma cópia em execução iniciada a partir de uma imagem.
VolumeArmazenamento persistente que mantém seus dados mesmo quando o contêiner é excluído.
ComposeUma ferramenta que define vários contêineres em um só arquivo compose.yaml e os gerencia com um único comando.

Excluir um contêiner exclui os arquivos que estão dentro dele. Monte em um volume ou em uma pasta do servidor tudo o que precisa sobreviver, como um banco de dados.

Como instalar o Docker no Ubuntu?

Primeiro conecte-se ao servidor por SSH. O pacote docker.io dos repositórios do Ubuntu funciona, e o servidor Docker pré-instalado da Seturack o usa. Para a versão mais recente, use o repositório apt do próprio Docker. De acordo com a documentação oficial do Docker, pacotes do Ubuntu como docker.io e docker-compose entram em conflito com os pacotes do próprio Docker, então remova-os primeiro se estiverem instalados.

  1. Siga a seção "apt repository" na página de instalação do Docker para Ubuntu para adicionar a chave de assinatura e a fonte do repositório. Execute os comandos de lá do jeito que estão, porque eles mudam entre as versões.
  2. Instale os pacotes: sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  3. Confira se o serviço está rodando: sudo systemctl status docker
  4. Execute o contêiner de teste: sudo docker run --rm hello-world

Se você vir a mensagem de boas-vindas, o Docker está pronto. No Ubuntu e no Debian, o serviço inicia sozinho a cada boot.

Seu primeiro contêiner

Inicie um servidor web com um único comando:

docker run -d --name web --restart unless-stopped -p 80:80 nginx:1.30

-d executa o contêiner em segundo plano. --restart unless-stopped o inicia de novo quando o servidor reinicia ou o contêiner trava. -p 80:80 liga a porta 80 do servidor ao contêiner. nginx:1.30 é o nome da imagem e a tag de versão. A tag é só um exemplo, então escolha a tag estável atual na página oficial do Nginx no Docker Hub. Abra o endereço IP do servidor em um navegador e você verá a página de boas-vindas do Nginx. Para removê-lo, execute docker rm -f web.

Monte um volume para dados persistentes, por exemplo -v sitedata:/usr/share/nginx/html. Você lista os volumes com docker volume ls. Os serviços do mesmo arquivo compose.yaml se alcançam pelo nome do serviço, então o seu aplicativo se conecta ao banco de dados como db, por exemplo.

Quando você tem vários contêineres, coloque todos em um arquivo compose.yaml e execute docker compose up -d na pasta do arquivo. As chaves image, restart, ports e volumes do arquivo correspondem às opções acima. Você confere o estado com docker compose ps, lê os logs com docker compose logs -f e desliga tudo com docker compose down.

Comandos que você vai usar todo dia

ComandoPara que serve
docker psLista os contêineres em execução. Adicione -a para ver também os parados.
docker logs -f webAcompanha ao vivo o log do contêiner web.
docker exec -it web shAbre um shell dentro do contêiner.
docker statsMostra o uso de CPU e de memória dos contêineres.
docker compose pull e docker compose up -dBaixa a nova imagem e substitui o contêiner pelo novo. Os dados nos volumes são mantidos.

Antes de atualizar, leia as notas de versão do app e aumente você mesmo a tag de versão no arquivo compose. O objetivo de fixar a tag é que a atualização vire uma decisão, e não um acidente.

Quatro coisas para observar

  • O Docker contorna as regras do ufw. De acordo com a documentação oficial, as portas que o Docker publica são abertas antes de as regras do ufw serem aplicadas. Uma regra do ufw que bloqueia essa porta não tem efeito. Vincule só ao endereço local um serviço que não deve ser acessível de fora, por exemplo -p 127.0.0.1:5432:5432. Contêineres na mesma rede do Docker já se alcançam, então você não precisa publicar um banco de dados.
  • A tag latest. Se você não informar uma tag, a latest é baixada. No próximo download, seu app pode pular para uma versão que você não esperava. Escreva uma tag específica e agende as atualizações por conta própria.
  • O grupo docker significa root. Adicionar um usuário ao grupo docker dá a ele privilégios de nível root (documentação oficial). Adicione apenas contas em que você confia.
  • Logs e imagens enchem o disco. A configuração padrão de logs do Docker não tem limite de tamanho. Defina um no contêiner: --log-opt max-size=10m --log-opt max-file=3. O docker system df mostra o uso do disco, e o docker image prune remove imagens sem tag.

Docker ou instalação direta?

O Docker ajuda quando você roda vários apps que precisam de versões diferentes em um só servidor, quando quer testar um app e removê-lo sem deixar rastros ou quando o desenvolvedor publica uma imagem oficial. Para um caso simples, como um único site WordPress, uma instalação direta também serve. O Docker é uma camada extra: atualizá-lo, monitorá-lo e fazer backup dos volumes é trabalho seu. Se estiver em dúvida, comece com um aplicativo pequeno. Você não precisa levar tudo para o Docker de uma vez.

O Docker já vem pronto na Seturack

Se você não quer instalar o Docker por conta própria, pode pedir um servidor com o app Docker. O Docker e o Compose vêm instalados, e a instalação leva cerca de 2,5 minutos. O firewall (ufw) fica ativado e só a porta SSH fica aberta para o exterior, o fail2ban protege o SSH e os logs dos contêineres são limitados a 3 arquivos de 10 MB por contêiner. O app não tem interface web, então o painel não mostra endereço do site. A armadilha das portas descrita acima vale aqui também. Para começar com um servidor pronto, veja a página do VPS Docker.

Pronto na Seturack: Portainer, Coolify, Dokploy.

Comentários0

Ainda não há comentários

Seja a primeira pessoa a compartilhar sua opinião.

Participe da discussão

Entre ou crie uma conta para deixar um comentário.

Não perca nenhuma publicação

Receba nossos tutoriais, guias e novidades de produtos na sua caixa de entrada.

Sua inscrição no nosso boletim informativo foi concluída.