Instalando Docker e Docker Compose no Ubuntu e Debian

O Docker permite rodar aplicações em contêineres isolados, com tudo o que elas precisam já empacotado. Com o Docker Compose, você descreve vários serviços em um único arquivo e sobe tudo com um comando. Este tutorial instala as versões oficiais e atualizadas dos dois em um servidor VPS com Ubuntu (22.04, 24.04 ou 26.04) ou Debian (12 ou 13), usando o repositório da própria Docker.

Instalando o Docker e o Docker Compose

Acesse o servidor como root e execute os comandos abaixo. Eles adicionam o repositório oficial da Docker (detectando automaticamente se o sistema é Ubuntu ou Debian) e instalam o Docker Engine com o plugin do Compose:

# apt update
# apt install -y ca-certificates curl
# install -m 0755 -d /etc/apt/keyrings
# . /etc/os-release
# curl -fsSL https://download.docker.com/linux/$ID/gpg -o /etc/apt/keyrings/docker.asc
# chmod a+r /etc/apt/keyrings/docker.asc
# echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/$ID $VERSION_CODENAME stable" > /etc/apt/sources.list.d/docker.list
# apt update
# apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Confira se tudo foi instalado rodando o contêiner de teste:

# docker run --rm hello-world
# docker compose version
A mensagem "Hello from Docker!" confirma que o Docker está funcionando. O serviço já fica ativo e inicia sozinho junto com o servidor.

Subindo seu primeiro serviço com o Docker Compose

Crie uma pasta para o projeto e, dentro dela, um arquivo compose.yaml. Como exemplo, vamos publicar um servidor web Nginx na porta 8080:

# mkdir -p /root/meuprojeto && cd /root/meuprojeto
# nano compose.yaml
Cole o conteúdo abaixo e salve o arquivo:

services:
  web:
    image: nginx:alpine
    ports:
      - "8080:80"
    restart: unless-stopped
Agora suba o serviço em segundo plano:

# docker compose up -d
Pronto: acesse http://IP-DO-SERVIDOR:8080 no navegador e verá a página de boas-vindas do Nginx. O endereço IP do servidor está no seu painel de conta.

Comandos do dia a dia

Sempre de dentro da pasta do projeto:

  • docker compose ps: lista os contêineres do projeto e o estado de cada um;
  • docker compose logs -f: acompanha os logs em tempo real;
  • docker compose pull && docker compose up -d: baixa as versões mais novas das imagens e recria os contêineres;
  • docker compose down: para e remove os contêineres (os volumes com dados são mantidos).
Com a opção restart: unless-stopped, os contêineres voltam sozinhos depois de um reinício do servidor. Lembre-se de que portas publicadas pelo Docker ficam acessíveis pela internet; publique só o que for necessário e prefira um proxy com HTTPS na frente das aplicações, como no tutorial do n8n.
Caso tenha alguma dificuldade, abra um ticket de suporte: Abrir ticket