# Como instalar o Docker na VPS via SSH

> No terminal da VPS, baixe e rode o script oficial do Docker (get.docker.com), que instala o Docker e o Docker Compose a partir do repositório oficial. Depois, teste com docker run hello-world.

O jeito mais rápido de instalar o Docker é com o script oficial, em `get.docker.com`. Ele configura o repositório oficial do Docker e instala o Docker Engine e o Docker Compose de uma vez. No fim, teste com `docker run hello-world`.

## Antes de começar
- Acesse a VPS por SSH. Se ainda não sabe como, veja "Como acessar sua VPS por SSH pelo terminal (Linux, Windows e Mac)".
- Os comandos funcionam no Ubuntu e no Debian, os sistemas das VPS da StayCloud.
- Os exemplos supõem que você entrou como `root`. Com outro usuário, coloque `sudo` na frente de cada comando.
- Se a VPS foi criada com um app pronto do instalador do painel, como o EasyPanel, o Docker já pode estar instalado. Confira antes com o primeiro passo abaixo e não instale por cima.
- Faça um snapshot da VPS pelo painel antes. Veja "Como criar um snapshot da sua VPS antes de uma mudança".

## Conferir se o Docker já está instalado
1. Rode:
   ```
   docker --version
   ```
   Resultado: se aparecer algo como `Docker version 27.x.x`, o Docker já está instalado e você pode pular para "Como saber se deu certo". Se aparecer `docker: command not found` (ou `Command 'docker' not found`), siga para a instalação.

## Instalar o Docker com o script oficial
1. Instale o `curl`, se ainda não tiver:
   ```
   apt update && apt install -y curl
   ```
   Resultado: o `curl` é instalado, ou aparece que ele já está na versão mais nova.
2. Baixe o script oficial:
   ```
   curl -fsSL https://get.docker.com -o get-docker.sh
   ```
   Resultado: o arquivo `get-docker.sh` aparece na pasta atual (confira com `ls`).
3. Rode o script:
   ```
   sh get-docker.sh
   ```
   Resultado: o script detecta o sistema, configura o repositório oficial do Docker e instala os pacotes. Leva alguns minutos. No fim, o prompt volta.
4. Apague o script, que não é mais necessário:
   ```
   rm get-docker.sh
   ```
   Resultado: o arquivo sai da pasta.

Quem prefere configurar o repositório à mão, passo a passo, encontra as instruções oficiais para Ubuntu e Debian em `docs.docker.com/engine/install`. O resultado é o mesmo.

## Usar o Docker sem ser root (opcional)
Se você usa a VPS com um usuário comum, coloque esse usuário no grupo `docker` para não precisar de `sudo` em todo comando.

1. Adicione o usuário ao grupo, trocando `<USUARIO>` pelo nome dele:
   ```
   usermod -aG docker <USUARIO>
   ```
   Resultado: o comando não mostra nada quando dá certo.
2. Saia da VPS com `exit` e entre de novo com esse usuário.
   Resultado: o grupo novo passa a valer. Confira com o comando `groups`: `docker` deve aparecer na lista.

Atenção: quem está no grupo `docker` tem, na prática, poder de administrador na VPS. Só adicione usuários de confiança.

## Como saber se deu certo
1. Veja as versões:
   ```
   docker --version
   docker compose version
   ```
   Resultado: cada comando mostra a versão instalada, por exemplo `Docker version 27.x.x` e `Docker Compose version v2.x.x`.
2. Rode o contêiner de teste:
   ```
   docker run hello-world
   ```
   Resultado: o Docker baixa a imagem de teste e mostra uma mensagem que começa com `Hello from Docker!`.
3. Confira se o Docker liga sozinho com a VPS:
   ```
   systemctl is-enabled docker
   ```
   Resultado: aparece `enabled`.

## Se algo der errado
### "permission denied while trying to connect to the Docker daemon socket"
Causa: o seu usuário não está no grupo `docker`, ou você ainda não saiu e entrou de novo. Solução: rode o comando com `sudo`, ou siga a seção "Usar o Docker sem ser root" e entre de novo na VPS.

### "Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?"
Causa: o serviço do Docker está parado. Solução: rode `systemctl start docker` e veja o status com `systemctl status docker`.

### O script avisa que o Docker já está instalado
Causa: a VPS já tem Docker, por exemplo instalado por um app pronto do painel. Solução: não reinstale por cima. Use o Docker que já existe e, se quiser atualizar, rode `apt update` e `apt upgrade`.

### Abri a porta do contêiner e ela ficou acessível mesmo com o UFW bloqueando
Causa: o Docker cria as próprias regras de firewall no sistema e as portas publicadas com `-p` passam por fora do UFW. Solução: publique a porta só no endereço local quando ela não precisar ser pública (por exemplo, `-p 127.0.0.1:8080:80`) e use também o firewall do painel. Veja "Como criar uma regra de firewall na sua VPS".

## Relacionados
- Como instalar programas na VPS via SSH
- Como ver e gerenciar serviços na VPS via SSH
- Como liberar portas com o firewall UFW na VPS via SSH
- Como criar uma regra de firewall na sua VPS
- Como criar um snapshot da sua VPS antes de uma mudança

---
Fonte: https://help.staycloud.com/artigos/como-instalar-o-docker-na-vps-via-ssh
