Tutoriales técnicos
Despliegue de Docker en la práctica (2025): la guía definitiva para aplicaciones en contenedores en un VPS
Tutorial práctico y actualizado de 2025 sobre despliegue con contenedores Docker. Aprende a instalar Docker Engine y Compose en un VPS Linux con un solo comando, configurar un acelerador de imágenes y seguir demostraciones paso a paso para desplegar el panel visual Portainer y un sitio web Nginx.

Despliegue de Docker en la práctica (2025): la guía definitiva para aplicaciones en contenedores en un VPS
En 2025, Docker hace mucho que dejó de ser una novedad: es una habilidad de supervivencia para los usuarios de VPS y los desarrolladores. Ya sea que quieras levantar un blog de WordPress en 1 minuto o desplegar en 5 minutos un sistema complejo con monitorización, registros y base de datos, Docker hace que estas operaciones sean tan sencillas como "armar bloques".
Este artículo descarta los conocimientos obsoletos (como docker-compose) y te enseña paso a paso a instalar Docker y Docker Compose V2 en un VPS Linux (CentOS/Ubuntu/Debian) de la forma más moderna y más estándar.
Con el despliegue tradicional de software (por ejemplo, instalar MySQL): necesitas descargar el código fuente o el paquete rpm, configurar manualmente /etc/my.cnf, lidiar con las dependencias de la biblioteca lib e incluso preocuparte por si vas a romper el entorno de Python integrado del sistema...
La forma de Docker:
docker run --name mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:8.0
Un solo comando y el servicio queda en línea al instante.
Ventajas principales:
- Consistencia del entorno: si funciona en mi computadora, sin duda funcionará en tu servidor.
- Aislamiento: los programas no se interfieren entre sí; cuando ya no lo necesites, haz
docker rmy bórralo, y el sistema queda limpio, sin archivos basura. - Arranque en segundos: mucho más ligero que una máquina virtual tradicional; incluso un VPS de 1 núcleo y 1 GB puede ejecutar varios servicios.
El método de instalación más recomendado hoy es el script oficial de una línea. Detecta automáticamente tu sistema (Ubuntu/Debian/CentOS) e instala el Docker Engine más reciente y el complemento Docker Compose V2.
Tras conectarte por SSH, copia y ejecuta el siguiente comando:
curl -fsSL https://get.docker.com | bash
Tras la instalación, ejecuta los siguientes comandos para asegurarte de que el demonio de Docker esté en ejecución:
systemctl start docker
systemctl enable docker
Comprueba las versiones de Docker y Compose para confirmar que la instalación se realizó correctamente:
docker --version
# 输出应类似:Docker version 27.x.x, build ...
docker compose version
# 输出应类似:Docker Compose version v2.x.x
# 注意:现在是 'docker compose' (中间有空格),不是老的 'docker-compose'
Por seguridad, se recomienda añadir el usuario actual al grupo docker, así ya no tendrás que escribir sudo cada vez que ejecutes un comando.
sudo usermod -aG docker $USER
newgrp docker
Segundo paso: resolver el problema de "descarga lenta" (imprescindible para VPS en China continental)
Si usas un VPS en el extranjero (como RackNerd, Vultr, AWS, GCP, etc.), omite directamente este paso.
En 2024-2025, acceder a Docker Hub desde China continental se ha vuelto extremadamente difícil, y los espejos públicos (como NetEase y USTC) suelen estar no disponibles.
Mejores soluciones:
- Primera opción: espejos internos del proveedor de nube (los más estables).
- VPS de Tencent Cloud: usa
https://mirror.ccs.tencentyun.com - VPS de Alibaba Cloud: inicia sesión en la consola del servicio de imágenes de contenedores y obtén tu "dirección de acelerador dedicada".
- Alternativa: proxies de terceros (por motivos regulatorios, estas direcciones pueden dejar de funcionar en cualquier momento; se recomienda buscar "aceleración de imágenes Docker 2025" para obtener la lista más reciente).
https://docker.m.daocloud.iohttps://docker.1ms.run
Método de configuración:
Edita el archivo /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
(Nota: sustituye la URL anterior según tu situación real)
Reiniciar para que surta efecto:
sudo systemctl daemon-reload
sudo systemctl restart docker
Hablar sin practicar no sirve, así que vamos a ejecutar dos aplicaciones reales.
Ejecutamos un servidor web Nginx para probar.
docker run -d --name my-nginx -p 8080:80 nginx
-d: ejecutar en segundo plano (modo Detached).--name: darle un nombre al contenedor para facilitar la gestión.-p 8080:80: mapeo de puertos. Asigna el puerto 8080 del VPS al puerto 80 dentro del contenedor.
Ahora, visita http://你的IP:8080 en el navegador y deberías ver la página "Welcome to nginx!".
¿La línea de comandos es demasiado aburrida? Portainer es el panel de administración web de Docker más popular.
# 创建数据卷(持久化保存数据)
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
Cómo acceder:
Abre https://你的IP:9443 en el navegador (ten en cuenta que es HTTPS).
En el primer inicio de sesión, establece la contraseña de administrador, elige "Get Started" y podrás ver visualmente en la página web el contenedor Nginx que acabas de ejecutar.
docker run sirve para ejecutar un único contenedor temporal. Si quieres desplegar un blog (WordPress + base de datos MySQL), necesitas que dos contenedores trabajen juntos, y entonces debes usar Compose.
Nota: en 2025, ya no necesitamos escribir version: '3' al principio del archivo; esa es una sintaxis obsoleta.
Crea un directorio y entra en él:
mkdir my-blog && cd my-blog
Crea 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 los servicios con un solo comando:
docker compose up -d
(Nota: el comando es docker compose, sin guion en medio)
| Tarea | Comando antiguo (no recomendado) | Comando nuevo (estándar de 2025) |
|---|---|---|
| Iniciar la orquestación | docker-compose up -d | docker compose up -d |
| Ver contenedores | docker ps | docker ps |
| Ver todos los contenedores | docker ps -a | docker ps -a |
| Detener un contenedor | docker stop <ID> | docker stop <ID> |
| Ver registros | docker logs -f <ID> | docker logs -f <ID> |
| Limpiar basura | - | docker system prune -a (una maravilla, úsalo con precaución) |
El punto que los principiantes más pasan por alto: Docker modifica las reglas de iptables.
Esto significa que, aunque actives el firewall en Ubuntu con ufw, mientras mapees un puerto en Docker (por ejemplo -p 8080:80), ¡el exterior seguirá pudiendo acceder directamente a ese puerto!
Recomendación: Si tu VPS está en la internet pública, se recomienda controlar la apertura de puertos en el panel de "grupo de seguridad" o "firewall" de tu proveedor de nube; esa es la línea de defensa más segura, independiente del sistema.
Cuando dominas Docker, dominas la "guía secreta" de las operaciones modernas. A continuación, puedes explorar miles de aplicaciones de código abierto en Docker Hub y desplegar con un solo comando tu propio lector de RSS, gestor de contraseñas o disco en la nube privado.
¡Happy Docking!
Aquí tienes un vídeo de debate sobre si vale la pena usar Docker Compose en 2025, que puede ayudarte a entender la tendencia tecnológica: Análisis del valor de Docker Compose en 2025
Este vídeo explica por qué, incluso hoy, cuando Kubernetes prevalece, Docker Compose sigue siendo la herramienta preferida para proyectos pequeños y medianos y entornos de desarrollo.