Tutoriais técnicos
Implantação com Docker na prática (2025) - O guia definitivo para aplicações em contêineres em uma VPS
Tutorial prático e atualizado de 2025 sobre implantação com contêineres Docker. Aprenda a instalar o Docker Engine e o Compose em uma VPS Linux com um único comando, configurar um acelerador de imagens e acompanhar demonstrações passo a passo para implantar o painel visual Portainer e um site Nginx.

Implantação com Docker na prática (2025) - O guia definitivo para aplicações em contêineres em uma VPS
Em 2025, o Docker há muito deixou de ser novidade: é uma habilidade de sobrevivência para usuários de VPS e desenvolvedores. Seja para subir um blog WordPress em 1 minuto ou implantar em 5 minutos um sistema complexo com monitoramento, logs e banco de dados, o Docker torna essas operações tão simples quanto "montar blocos de encaixe".
Este artigo descarta conhecimentos desatualizados (como docker-compose) e ensina passo a passo a instalar o Docker e o Docker Compose V2 em uma VPS Linux (CentOS/Ubuntu/Debian) da forma mais moderna e mais padrão.
Na implantação tradicional de software (por exemplo, instalar o MySQL): você precisa baixar o código-fonte ou o pacote rpm, configurar manualmente o /etc/my.cnf, lidar com as dependências da biblioteca lib e até se preocupar em quebrar o ambiente Python nativo do sistema...
O jeito Docker:
docker run --name mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:8.0
Um único comando e o serviço já entra no ar.
Principais vantagens:
- Consistência de ambiente: se roda no meu computador, com certeza vai rodar no seu servidor.
- Isolamento: os softwares não interferem entre si; quando não precisar mais, basta
docker rme excluir, deixando o sistema limpo, sem nenhum arquivo residual. - Inicialização em segundos: muito mais leve que uma máquina virtual tradicional; até uma VPS de 1 núcleo e 1 GB consegue rodar vários serviços.
O método de instalação mais recomendado atualmente é o script oficial de uma linha. Ele detecta automaticamente o seu sistema (Ubuntu/Debian/CentOS) e instala o Docker Engine mais recente e o plugin Docker Compose V2.
Após conectar via SSH, copie e execute o comando abaixo:
curl -fsSL https://get.docker.com | bash
Após a instalação, execute os comandos abaixo para garantir que o daemon do Docker esteja em execução:
systemctl start docker
systemctl enable docker
Verifique as versões do Docker e do Compose para confirmar que a instalação foi bem-sucedida:
docker --version
# 输出应类似:Docker version 27.x.x, build ...
docker compose version
# 输出应类似:Docker Compose version v2.x.x
# 注意:现在是 'docker compose' (中间有空格),不是老的 'docker-compose'
Por segurança, recomenda-se adicionar o usuário atual ao grupo docker, assim você não precisará mais digitar sudo toda vez que executar um comando.
sudo usermod -aG docker $USER
newgrp docker
Segundo passo: resolver o problema de "download lento" (leitura obrigatória para VPS na China continental)
Se você usa uma VPS no exterior (como RackNerd, Vultr, AWS, GCP etc.), pule diretamente esta etapa.
Em 2024-2025, acessar o Docker Hub a partir da China continental tornou-se extremamente difícil, e os espelhos públicos (como NetEase e USTC) costumam ficar indisponíveis.
Melhores soluções:
- Primeira opção: espelhos internos do provedor de nuvem (mais estáveis).
- VPS da Tencent Cloud: use
https://mirror.ccs.tencentyun.com - VPS da Alibaba Cloud: faça login no console do serviço de imagens de contêiner e obtenha o seu "endereço de acelerador dedicado".
- Alternativa: proxies de terceiros (por motivos regulatórios, esses endereços podem deixar de funcionar a qualquer momento; recomenda-se pesquisar "aceleração de imagens Docker 2025" para obter a lista mais recente).
https://docker.m.daocloud.iohttps://docker.1ms.run
Método de configuração:
Edite o arquivo /etc/docker/daemon.json:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://mirror.ccs.tencentyun.com",
"https://docker.m.daocloud.io"
]
}
EOF
(Observação: substitua a URL acima de acordo com a sua situação real)
Reiniciar para aplicar:
sudo systemctl daemon-reload
sudo systemctl restart docker
Falar sem praticar não vale nada, então vamos executar duas aplicações reais.
Vamos executar um servidor web Nginx para testar.
docker run -d --name my-nginx -p 8080:80 nginx
-d: executar em segundo plano (modo Detached).--name: dar um nome ao contêiner para facilitar o gerenciamento.-p 8080:80: mapeamento de portas. Mapeia a porta 8080 da VPS para a porta 80 dentro do contêiner.
Agora, acesse http://你的IP:8080 no navegador e você deverá ver a página "Welcome to nginx!".
A linha de comando é muito entediante? O Portainer é o painel de administração web do Docker mais popular atualmente.
# 创建数据卷(持久化保存数据)
docker volume create portainer_data
# 启动 Portainer
docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
Como acessar:
Abra https://你的IP:9443 no navegador (atenção: é HTTPS).
No primeiro login, defina a senha de administrador, escolha "Get Started" e você poderá ver visualmente na página web o contêiner Nginx que acabou de executar!
O docker run serve para executar um único contêiner temporário. Se você quiser implantar um blog (WordPress + banco de dados MySQL), dois contêineres precisam trabalhar juntos, e aí é obrigatório usar o Compose.
Observação: em 2025, não precisamos mais escrever version: '3' no início do arquivo; essa é uma sintaxe obsoleta.
Crie um diretório e entre nele:
mkdir my-blog && cd my-blog
Crie o docker-compose.yml:
services:
web:
image: nginx
ports:
- "8081:80"
restart: always
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: examplepass
volumes:
- db_data:/var/lib/mysql
volumes:
db_data:
Iniciar todos os serviços com um único comando:
docker compose up -d
(Observação: o comando é docker compose, sem hífen no meio)
| Tarefa | Comando antigo (não recomendado) | Comando novo (padrão de 2025) |
|---|---|---|
| Iniciar a orquestração | docker-compose up -d | docker compose up -d |
| Ver contêineres | docker ps | docker ps |
| Ver todos os contêineres | docker ps -a | docker ps -a |
| Parar um contêiner | docker stop <ID> | docker stop <ID> |
| Ver logs | docker logs -f <ID> | docker logs -f <ID> |
| Limpar lixo | - | docker system prune -a (uma mão na roda, use com cautela) |
O ponto que os iniciantes mais ignoram: o Docker modifica as regras do iptables.
Isso significa que, mesmo que você ative o firewall no Ubuntu com ufw, basta mapear uma porta no Docker (por exemplo, -p 8080:80) para que o mundo externo ainda consiga acessar essa porta diretamente!
Recomendação: Se a sua VPS está na internet pública, recomenda-se controlar a abertura de portas no painel de "grupo de segurança" ou "firewall" do provedor de nuvem; essa é a linha de defesa mais segura, independente do sistema.
Ao dominar o Docker, você domina o "código secreto" das operações modernas. Em seguida, você pode explorar milhares de aplicativos de código aberto no Docker Hub e implantar com um único comando o seu próprio leitor de RSS, gerenciador de senhas ou disco em nuvem privado.
Happy Docking!
Aqui está um vídeo de discussão sobre se vale a pena usar o Docker Compose em 2025, que pode ajudar você a entender a tendência tecnológica: Análise do valor do Docker Compose em 2025
Este vídeo explica por que, mesmo hoje, com o Kubernetes em alta, o Docker Compose continua sendo a ferramenta preferida para projetos de pequeno e médio porte e ambientes de desenvolvimento.