Volver al blog
Guides

Docker para tus sitios web: 7 consejos prácticos para ejecutar contenedores en tu propio servidor

Una caché Redis, un worker de colas, una pequeña API interna junto a tu sitio — Docker lo hace limpio en tu propio VPS. Estos son siete hábitos que separan una configuración de contenedores ordenada de una frágil.

S
ShadowPanel Team
3 min de lectura

Llevar un sitio web rara vez se queda en PHP y una base de datos. Tarde o temprano querrás una caché Redis, un worker de colas, una pequeña API interna o un servicio headless corriendo a su lado. Docker es la forma más limpia de hacerlo en tu propio VPS — pero unos pocos hábitos separan una configuración ordenada de una que falla a las 3 de la madrugada. Aquí van siete que vale la pena adoptar.

1. Una red por sitio, y comunicarse por nombre

Pon los contenedores de cada sitio en su propia red Docker y deja que se alcancen por nombre de contenedor (redis:6379) en lugar de localhost. Los servicios siguen siendo localizables, se evitan los choques de puertos entre proyectos, y los contenedores de un sitio no pueden hablar por accidente con los de otro.

2. No publiques puertos que no necesitas

Una instancia de Redis o una API interna que solo usa tu app nunca debería estar ligada a un puerto del host. Alcánzala a través de la red interna. Cada puerto publicado es superficie de ataque — expón solo lo que el público realmente necesita, que suele ser únicamente tu app web.

3. Fija las etiquetas de imagen — evita :latest

redis:latest hoy y redis:latest dentro de tres meses pueden ser versiones mayores distintas. Fija algo concreto como redis:7-alpine (o un digest) para que un rebuild no cambie — ni rompa — en silencio un servicio del que dependes.

4. Define siempre una política de reinicio

Sin --restart=unless-stopped, un reinicio del servidor deja tus servicios auxiliares apagados y tu app lanzando errores de conexión hasta que te das cuenta. Define la política una vez y los contenedores vuelven por sí solos tras un reinicio o un fallo.

5. Trata Docker como aislamiento, no como un muro de seguridad

Los contenedores comparten el kernel del host. Son excelentes para mantener los proyectos ordenados y las dependencias separadas — pero no son una frontera estricta entre inquilinos no confiables. Pon límites de memoria y CPU para que un contenedor no ahogue a los demás, y asume que un contenedor comprometido puede presionar a sus vecinos.

6. Sabe leer los logs

Cuando algo se rompe, docker logs --tail 100 <nombre> es tu primera parada. Asegúrate de que tus contenedores escriben a stdout/stderr (la mayoría de las imágenes oficiales ya lo hacen) para que la salida se capture de verdad y no quede enterrada en un archivo dentro del contenedor.

7. Etiqueta todo

En un servidor que aloja varios sitios, docker ps se vuelve ruido enseguida. Etiqueta cada contenedor con el sitio al que pertenece (--label site=acme) para poder filtrar, auditar y limpiar después sin adivinar qué contenedor mueve qué.

La forma fácil

Cada consejo de arriba es un paso manual que puedes olvidar o hacer mal. Es justo el tipo de trabajo tedioso que un buen panel debería gestionar por ti. En ShadowPanel, añadir un contenedor a un sitio le da automáticamente su propia red por sitio, una etiqueta de sitio, una política de reinicio unless-stopped y mapeos de puertos validados y sin privilegios — desde una interfaz clara, con los logs y start/stop/restart a un clic. Obtienes los siete buenos hábitos por defecto, sin memorizar un solo flag.

Ejecuta tus contenedores de forma ordenada

Plan gratuito — 3 sitios, sin tarjeta de crédito — y puedes instalarlo en cualquier VPS Ubuntu en unos diez minutos:

curl -fsSL https://shadowpanel.de/install.sh | bash

Descarga ShadowPanel gratis →

Usamos cookies

Usamos cookies para mejorar su experiencia y recordar sus preferencias. Puede gestionar sus opciones a continuación. Más información.

ShadowPanel

Gestione sus preferencias de cookies a continuación. Las cookies esenciales siempre están activas ya que son necesarias para el funcionamiento del sitio.

Esenciales

Necesarias para el funcionamiento del sitio, incluida la autenticación de sesión y la protección CSRF. No se pueden desactivar.

Siempre activo

Funcionales

Recuerda su preferencia de idioma para que no tenga que volver a seleccionarla en cada visita.

Analíticas

Nos ayuda a entender cómo usan los visitantes el sitio para mejorarlo. No se venden datos personales.

Marketing

Utilizado por Google Ads para medir las conversiones publicitarias y mejorar la segmentación de campañas. No se venden datos personales.