Cómo ejecutar Docker y Portainer en un VPS (Guía 2026)

Publicado: por Dallas Kashuba
Cómo ejecutar Docker y Portainer en un VPS (Guía 2026) thumbnail

¿Alguna vez has oído hablar de Dockerception?

Bien, sujétate el sombrero. Vamos a adentrarnos en la madriguera del conejo.

Portainer, la interfaz de usuario web que estás a punto de instalar sobre Docker, es en sí mismo un contenedor Docker.

Es una herramienta que funciona sobre la misma cosa que gestiona. La inicias con una línea de docker run, y lo primero que hace es retroceder a través de un pequeño agujero en el host (un archivo socket) y pedir al demonio de Docker que le muestre todos los demás contenedores, incluido ella misma. Desde esa pestaña del navegador, puedes actualizar Portainer. Reiniciar Portainer. Y gestionar todos tus demás contenedores Docker.

La interfaz de usuario que estás viendo está a un clic de eliminar la interfaz de usuario que estás viendo.

En un VPS donde ya estás pagando por la caja y te sientes cómodo con SSH, Portainer se integra perfectamente sobre Docker sin cambiar cómo funciona nada debajo.

Ese es el valor.

Una caja de 4 GB ejecuta Docker, Portainer y una pequeña flota de aplicaciones autoalojadas sin despeinarse. Y tiene un costo aproximado al de un par de suscripciones de streaming al mes. Suficiente para ejecutar la automatización del hogar, el almacenamiento de fotos familiar, el asistente de IA y el boletín que has estado pensando en lanzar — en un servidor que realmente es tuyo.

Aquí te mostramos cómo ponerlo en funcionamiento, asegurarlo y comenzar a ver su valor.

¿Qué es exactamente Portainer?

Arquitectura de Portainer mostrando el socket Docker conectando portainer.io dentro de VPN al navegador para la gestión remota de Docker.

Portainer es una interfaz de usuario web que se ejecuta como un contenedor Docker y gestiona tus otros contenedores a través del socket de Docker.

Es básicamente un frontend basado en navegador para los mismos comandos de Docker que de otra manera escribirías a mano, además de la gestión de pilas, acceso basado en roles (si actualizas) y una vista del Panel de la CPU y memoria.

La conexión del socket es lo que hace que funcione. El enlace parece -v /var/run/docker.sock:/var/run/docker.sock en el comando de instalación, y esa única línea es la que realiza todo el trabajo pesado. Sin ella, Portainer es una interfaz de usuario para un host Docker vacío. Con ella, Portainer es el control remoto del host Docker.

Algo que debes tener en cuenta: cualquier proceso que pueda alcanzar /var/run/docker.sock puede efectivamente ejecutar cualquier cosa como root en el host. Eso es una característica cuando es Portainer quien lo solicita y un problema cuando es algún contenedor que iniciaste la semana pasada y olvidaste que le habías dado acceso al socket.

Trata la vinculación del socket como una capacidad privilegiada y audita cualquier otro contenedor que la desee.

Recibe contenido directamente en tu bandeja de entrada

Suscríbete ahora para recibir todas las últimas actualizaciones, directamente en tu bandeja de entrada.

¿Necesitas Portainer si ya tienes Docker?

No. Docker funciona bien desde el terminal, y muchas personas ejecutan un par de contenedores durante años sin nunca instalar una interfaz de usuario encima.

Quieres Portainer si:

  • Manejarás más de dos o tres contenedores Docker en diferentes aplicaciones.
  • Prefieres hacer clic en “reiniciar” que volver a escribir un comando Compose a las 11 pm.
  • Estás compartiendo acceso con alguien que no vive en un terminal.
  • Quieres implementar actualizaciones de stack desde un repositorio Git sin escribir un script de despliegue.

Omite Portainer si:

  • Estás ejecutando uno o dos contenedores que raramente cambian. 
  • Ya estás cómodo con Docker Compose, y estás contento de seguir ahí.

Docker ya es lo suficientemente convencional como para que esta no sea una decisión marginal. Según la Encuesta a Desarrolladores de Stack Overflow 2025, Docker es la plataforma de contenedores más adoptada entre los desarrolladores, con más del 70% de uso — el mayor salto de cualquier tecnología que la encuesta monitorea en un solo año. El proyecto Portainer tiene aproximadamente 37,000 estrellas en GitHub.

Otras opciones existen. Coolify avanza más hacia las abstracciones al estilo PaaS, y Dokploy se sitúa en un territorio similar con una huella más ligera — pero Portainer es el primero que la mayoría de las guías de instalación eligen.

Si vives en tmux y ejecutas una aplicación, cierra esta pestaña. Estás bien. Si estás ejecutando cuatro aplicaciones autoalojadas y has buscado en Google, “¿Qué son los registros de Docker otra vez?” dos veces este mes, sigue leyendo.

¿Qué tan grande necesitas un VPS para ejecutar Docker y Portainer?

Un VPS de 4 GB maneja Portainer más un pequeño conjunto de contenedores de proyectos secundarios cómodamente.

Portainer recomienda un host con al menos 2 GB de RAM y 1 núcleo de CPU, aunque el proceso del servidor de Portainer permanece inactivo en torno a los 100 MB. El demonio de Docker añade unos cientos de MB de sobrecarga antes de que comience cualquiera de tus aplicaciones.

Aquí está cómo eso se traduce a cargas de trabajo reales:

Tabla comparativa de los requisitos de carga de trabajo de VPS: una aplicación individual necesita 4 GB, Nextcloud necesita 8 GB, GitLab con CI/CD necesita 16 GB de RAM.

En DreamHost, nuestro VPS Autogestionado ofrece cuatro niveles basados en RAM (Stack 4, 8, 16 y 32), siendo el nivel de entrada Stack 4 dimensionado exactamente para este tipo de pequeño host de Docker. (Y sí, el almacenamiento NVMe y acceso completo a root están incluidos.)

Si estás indeciso sobre si el alojamiento propio vale la pena el tiempo, Stack 4 es el tamaño donde las cuentas empiezan a salir a tu favor desde el primer día.

Una Nota Sobre El Almacenamiento: La huella de almacenamiento de Portainer es mínima — solo almacena su propia base de datos de configuración. Los propios documentos de Portainer recomiendan un rendimiento de nivel SSD (≈3.5 MB/s sostenidos, más de 30,000 IOPS, <10ms de latencia de escritura), lo cual cualquier unidad NVMe moderna supera cómodamente. El disco solo se convierte en una preocupación real si estás ejecutando contenedores que dependen intensamente de bases de datos como Postgres o MySQL junto a él. Si tu VPS está en un disco giratorio en 2026, la interfaz de usuario de Portainer se sentirá lenta mucho antes de que lo haga la RAM. Nuestro consejo: actualiza el disco antes que el plan.

¿Cómo instalar Docker y Portainer en un VPS?

Formulario de configuración inicial de Portainer.io para crear una cuenta de administrador con nombre de usuario, contraseña que requiere un mínimo de 12 caracteres y recolección de estadísticas opcional.

Toma seis pasos y aproximadamente 30 minutos, la mayoría del tiempo esperando por la carga de imágenes.

1. Elige una distribución Linux

Ubuntu 22.04 o 24.04 LTS es el camino de menor resistencia. Ubuntu es lo que el VPS Autogestionado de DreamHost utiliza por defecto, y la mayoría de los fragmentos de instalación de Docker y hilos de ayuda de la comunidad lo asumen. Debian y AlmaLinux también funcionan, sin embargo.

¿No estás seguro de qué versión de Ubuntu estás utilizando? Aprende cinco maneras de comprobarlo.

2. Instala Docker desde el repositorio oficial

No apt install docker.io. Eso descarga una versión antigua de Docker desde el archivo de Ubuntu.

En su lugar, utiliza el propio repositorio apt de Docker según la documentación oficial de instalación de Docker, lo que añade la llave GPG de Docker, el repositorio y docker-ce junto con el plugin Compose de una sola vez.

3. Verifica que Docker está funcionando

Ejecuta docker run hello-world.

Si no recibes el mensaje “Hello from Docker!”, arregla el demonio antes de añadir Portainer encima.

4. Crea un volumen persistente para los datos de Portainer

A continuación, ejecuta docker volume create portainer_data.

Mantener la base de datos de Portainer en un volumen de Docker (no dentro del contenedor) significa que una actualización de Portainer no borrará tu configuración.

5. Ejecuta Portainer Community Edition

Utiliza el comando oficial de instalación de la documentación de instalación de Portainer para Linux:

  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:lts

Desglosemos eso línea por línea:

  • -d lo ejecuta de manera desvinculada.
  • -p 9443:9443 es la interfaz de usuario web de Portainer en HTTPS.
  • -p 8000:8000 es el túnel del Agente Edge; solo lo necesitas si vas a conectar entornos remotos (Docker, Swarm o Kubernetes) a través de Agentes Edge más adelante, así que omítelo en una instalación en un único anfitrión.
  • --restart=always hace que Portainer se reinicie después de un reinicio.
  • -v las banderas son la vinculación del socket y el volumen persistente del paso 4.
  • :lts la etiqueta es el canal de lanzamiento de Soporte a Largo Plazo de Portainer — la compilación estable recomendada para producción.

6. Abre la interfaz y crea tu cuenta de administrador

Dirige tu navegador a https://YOUR_VPS_IP:9443.

Haz clic a través de la advertencia del certificado de firma automática. Aterrizarás en la pantalla de “creación del usuario administrador inicial”. Elige un nombre de usuario que no sea admin, establece una contraseña fuerte y guárdala en un lugar seguro. ¡Y… ya estás dentro!

¿Por qué Portainer acaba de expirar en mí?

Porque Portainer espera exactamente cinco minutos para que alguien lo reclame en la primera instalación. Si nadie lo hace, cierra la puerta.

Texto literal de las propias FAQ de Portainer:

Como medida de seguridad, cuando Portainer se instala por primera vez, esperará 5 minutos para que se cree un usuario administrador. Si no se crea un usuario dentro de esos 5 minutos, el Servidor de Portainer dejará de escuchar solicitudes.

Traducción: si pasaste el Paso 5 haciendo un sándwich, tu instalación ahora se niega a hablarte —y no hiciste nada malo.

La solución es simple. Ejecuta docker restart portainer.

Eso reinicia el contenedor, te da otros cinco minutos, y te lleva a la pantalla de crear-administrador. Repite según sea necesario. Bienvenido al autoalojamiento.

Si estás programando la instalación para una flota (Ansible, Terraform, un pipeline de despliegue), Portainer acepta una bandera --admin-password-file al iniciar que omite el temporizador completamente al crear el usuario administrador desde un archivo en la primera ejecución. El documento de instalación cubre la sintaxis. Para una instalación VPS única, el truco de reinicio está bien.

¿Cómo impedir que Docker eluda tu firewall?

Comparación del firewall de Docker: sin la regla DOCKER-USER permite acceso ilimitado al contenedor, con la regla DOCKER-USER añade protección del firewall.

Esto sorprende a la gente en producción, no solo en desarrollo — así que presta atención.

Cuando ejecutas docker run -p 80:80, el puerto publicado es accesible desde internet público incluso si ufw status muestra el puerto 80 como denegado. Docker dirige el tráfico del contenedor en la tabla NAT, lo que significa que los paquetes se desvían antes de que lleguen a las cadenas INPUT y OUTPUT que utiliza UFW.

UFW no está roto. Simplemente está en el pasillo incorrecto.

La solución que Docker recomienda es la cadena iptables DOCKER-USER, reservada para reglas del administrador para que Docker no las sobrescriba al reiniciar. (Las reglas no sobreviven un reinicio completo del host por sí solas — persistirlas con iptables-persistent o un servicio systemd; ufw-docker se encarga de esto por ti.) La herramienta estándar de la comunidad para integrar UFW en DOCKER-USER es chaifeng/ufw-docker, que automatiza la generación de reglas.

Instálalo, y luego verifica con un escaneo de puerto desde fuera de tu VPS que los puertos que crees que están cerrados están realmente cerrados.

He visto que esto atrapa a un ingeniero experto dos veces en la misma semana, primero en una máquina personal, luego en la de un cliente. UFW decía una cosa, internet público otra, y la verdad estaba en iptables.

Para Portainer específicamente, se publica el puerto 9443, lo que significa que la interfaz de administración es accesible desde cualquier lugar en internet público en el momento en que el contenedor inicia. Dos caminos razonables: restringir el 9443 a través de reglas de DOCKER-USER (permitir solo tu IP de casa u oficina), o protegerlo con un túnel VPN como WireGuard para que la interfaz nunca tenga una IP pública en absoluto.

¿Qué deberías bloquear justo después del primer inicio de sesión?

Estás dentro. Cinco cosas que vale la pena hacer antes de cerrar esa pestaña del navegador, según la guía de seguridad de Portainer:

  • Forzar Solo HTTPS. Portainer tiene HTTPS en el 9443 por defecto, pero no lo impone. Activa el interruptor en Configuración para que la interfaz rechace completamente HTTP.
  • Reemplazar el certificado auto-firmado. Sube un certificado que hayas generado, o coloca a Portainer detrás de un proxy inverso NGINX que tenga un certificado de Let’s Encrypt. Después del primer día, hacer clic a través de la advertencia del navegador cada vez es un hábito que lamentarás.
  • Usa un nombre de usuario administrador real. “Admin” es la primera suposición en cualquier intento de relleno de credenciales. Elige algo específico para ti.
  • Restringir la interfaz a una VPN. WireGuard es el patrón recomendado por Portainer. Un 9443 público con credenciales fuertes está bien. Un 9443 que solo sea accesible en una red privada es mejor.
  • Auditar la vinculación del socket de Docker. Cualquier cosa con acceso de lectura a /var/run/docker.sock puede ejecutar cualquier cosa como root en el host. No montes el socket casualmente en otros contenedores. Cada vinculación adicional es un nuevo camino hacia el host. Si un contenedor afirma que necesita el socket, pregunta por qué — y considera un proxy de socket si la respuesta es “para monitoreo”.

¿Cómo utilizas Portainer en tu día a día?

La recompensa por instalar Portainer es el día en que dejas de usar SSH para reiniciar un contenedor problemático y comienzas a hacer clic en un botón en su lugar. La recompensa más grande es la gestión de pilas.

Un stack de Portainer es una aplicación multi-contenedor definida por un archivo Docker Compose. Todo lo que puedas expresar como un docker-compose.yml puedes implementarlo como un stack, con tres rutas principales (excluyendo plantillas personalizadas) según la documentación oficial de stacks:

  • Pega Compose en la UI
  • Sube un archivo Compose
  • Dirige Portainer a un repositorio de Git
Panel de Portainer.io mostrando los Detalles del Stack con tabla de contenedores, registros, estadísticas y controles de gestión para contenedores Docker.

La ruta de Git es la que importa. Configuras Portainer en un repositorio público o autenticado y una ruta hacia docker-compose.yml. Portainer o bien consulta el repositorio según un horario (el predeterminado es cada cinco minutos) o espera un webhook de GitHub. Cuando el archivo Compose cambia en la fuente, Portainer lo descarga y lo despliega automáticamente.

Esa es la versión autoalojada de “desplegar al hacer push” sin pagar por el privilegio a un PaaS.

Las pequeñas victorias diarias también se suman. Piensa en registros en un panel en lugar de docker logs -f, reinicios con un solo clic, reconstruir un stack desde un botón y gráficos de recursos que puedes escanear en tres segundos en lugar de ejecutar estadísticas de Docker.

Portainer también admite hosts Docker remotos a través de su Agente Edge, que es como un asistente de IA autoalojado o servidor de medios se distribuye en múltiples cajas.

¿Cuánto cuesta Portainer? (¿Y cuándo deja de ser gratis?)

La Edición Comunitaria de Portainer es gratuita e ilimitada, sin más. La instalación que acabas de realizar está completamente equipada para un host con tantos contenedores como tu VPS pueda albergar. Sin límite de nodos, sin caducidad, sin pantallas de insistencia.

EdiciónCostoNodosMejor para
Edición ComunitariaGratis, código abiertoIlimitadosProyectos personales, homelab, auto-hosting en VPS individual
Edición Empresarial (Take 3)Gratis perpetuamenteHasta 3Homelabs pequeños que desean RBAC y registros de auditoría
Empresarial InicialDesde $99/mes5, 10, o 15Equipos pequeños gestionando infraestructura real
Empresarial EscalaDesde $199/mesHasta 25Equipos en crecimiento que necesitan soporte 9×5
EmpresarialCotizaciónIlimitadosNecesidades de cumplimiento y soporte 24/7

El nivel perpetuo gratuito de tres nodos (llamado Take 3) vale la pena conocerlo: renuevas la licencia anualmente sin costo siempre que te mantengas en tres nodos o menos.

Ese es el plan adecuado para la mayoría de los homelabs y pequeños equipos que desean control de acceso basado en roles (RBAC), registros de auditoría y registro de actividades sin pagar. Por encima de eso, Business Starter es de $99/mes en la página de precios de negocios de Portainer para 5/10/15 nodos; Scale es de $199/mes hasta 25 nodos; y Enterprise se cotiza bajo pedido.

Para casi todos los que leen esto, la mejor opción es la Edición Comunitaria. Servirá para un autoanfitrión VPS único durante la vida de la caja. Las ediciones Business solo justifican su costo cuando estás gestionando números reales de nodos, necesitas RBAC a través de un equipo, o requieres soporte comercial para cumplimiento.

¿Deberías agregar Portainer o evitarlo?

Aquí está la respuesta honesta en dos oraciones:

✅ Si vas a compartir este servidor, implementar desde Git o ejecutar más de tres contenedores dentro de un año a partir de ahora, instala Portainer mientras el host está fresco y tus hábitos aún se están formando en torno a él.

❌ Si estás ejecutando una aplicación tranquila y estás contento en el terminal, no extrañarás la interfaz de usuario que no instalaste.

La verdadera pregunta no es Portainer versus no Portainer. Es si el autoalojamiento es la decisión correcta para ti — y respondiste eso al abrir esta pestaña.

Un VPS de 4 GB, Docker y Portainer CE te llevarán más lejos de lo que la mayoría espera: un stack de automatización, un servidor de fotos, una plataforma de boletines y un asistente local de IA, todo por menos de lo que probablemente estás pagando por dos servicios de streaming que apenas usas.

Eso no es un mal trato para una caja que realmente posees.

Preguntas frecuentes sobre Docker y Portainer

¿Para qué se utiliza Portainer?

Portainer se utiliza para gestionar contenedores Docker, Docker Swarm y Kubernetes a través de una interfaz web. Funciona como un contenedor Docker mismo, se conecta al socket Docker del host y te proporciona una vista del navegador y superficie de control sobre todos los demás contenedores en el host —iniciando y deteniendo contenedores, desplegando pilas de múltiples contenedores, viendo registros y gestionando el acceso de usuarios sin necesidad de SSH.

¿Necesito Portainer si tengo Docker?

No, no necesitas Portainer para usar Docker. Docker funciona completamente desde la terminal, y muchos autoalojadores nunca instalan una interfaz de usuario encima.

Portainer demuestra su valor cuando estás manejando más de dos o tres contenedores, compartiendo acceso con alguien que no vive en un terminal, o desplegando actualizaciones de stack desde un repositorio Git. Omítelo si estás ejecutando uno o dos contenedores estables y te sientes cómodo con Docker Compose.

¿En qué puerto opera Portainer?

Portainer se ejecuta en el puerto 9443 por defecto para el acceso HTTPS a la interfaz de usuario web, además del puerto 8000 para el túnel del Edge Agent si conectas hosts Docker remotos más tarde. El puerto 8000 es opcional en una instalación en un único host; puedes omitir la bandera -p 8000:8000 del comando de instalación sin afectar la interfaz de usuario local. Los valores predeterminados provienen directamente del documento oficial de instalación de Portainer para Linux.

¿Cuánta RAM necesita Portainer?

Portainer por sí solo se mantiene en alrededor de 100 MB antes de cargar cualquier otra cosa. Añade unos cuantos cientos de MB para el daemon de Docker, y luego calcula el tamaño a partir de ahí basado en lo que realmente estás ejecutando.

En DreamHost, dimensionamos nuestro VPS Autogestionado de nivel de entrada con 4 GB de RAM precisamente para este tipo de carga de trabajo — suficiente margen para Portainer más un pequeño conjunto de contenedores de proyectos secundarios como Ghost, n8n, una base de datos Postgres y un proxy inverso.

¿Es Portainer gratuito?

Sí. La Edición Comunitaria de Portainer es totalmente gratuita, y la Edición de Negocios también tiene un nivel gratuito perpetuo de 3 nodos llamado Take 3, que se renueva anualmente sin costo siempre que te mantengas en tres nodos o menos. Por encima de tres nodos, el precio para negocios comienza en $99/mes en el plan Starter por la página de precios de negocios de Portainer.

¿Cuál es la diferencia entre Portainer CE y la Edición Business?

Portainer Community Edition es gratuita, de código abierto, y completamente equipada para uso personal.

Edición Empresarial agrega control de acceso basado en roles, registros de auditoría, registro de actividades y soporte comercial, y comienza en $99/mes para 5 nodos después del nivel perpetuo gratuito de 3 nodos Take 3.

¿Puede Portainer gestionar múltiples hosts de Docker?

Sí, Portainer puede gestionar múltiples hosts de Docker mediante Agentes Edge, que se ejecutan en cada host remoto y consultan el servidor central de Portainer en el puerto de la UI, utilizando el puerto 8000 para abrir un túnel seguro de regreso para comandos de gestión. Para autoalojadores individuales de VPS, esto es excesivo. Para cualquiera que opere tres o más cajas que compartan un plano de control, esta es la razón por la que 8000 está en la línea de instalación.

¿Docker evade UFW en un VPS?

Sí, Docker omite UFW por defecto porque Docker gestiona el tráfico de contenedores en la capa NAT de iptables, que se encuentra frente a las cadenas INPUT y OUTPUT de UFW.

Según la documentación de filtrado de paquetes de Docker, “Los paquetes se desvían antes de que alcancen las cadenas INPUT y OUTPUT que utiliza UFW.” La solución es la cadena iptables DOCKER-USER, y la herramienta estándar de la comunidad para integrar UFW en ella es chaifeng/ufw-docker.

VPS

Toma control de todo tu stack. Apps, IA, bases de datos y más.

Mantén cada credencial y conversación en un servidor que tú controlas, con velocidad NVMe y ancho de banda sin medición incluidos.

Explora los planes de alojamiento VPS