¿Te suena la palabra Dockerception?
Prepárate, porque vamos a entrar en un juego de espejos.
Portainer, la interfaz web que vas a instalar sobre Docker, es en sí misma un contenedor de Docker.
Es decir: una herramienta que se ejecuta sobre lo mismo que administra. La arrancas con una línea de docker run, y su primer acto es asomarse al host por una abertura diminuta (un archivo de socket) para pedirle al daemon de Docker la lista completa de contenedores de la máquina, con ella incluida. Desde esa pestaña del navegador controlas todos tus demás contenedores.
La interfaz que tienes enfrente se enlista a sí misma entre los contenedores.
En un VPS que ya pagas y donde SSH es terreno conocido, Portainer se monta sobre Docker sin alterar nada de lo que ya funciona debajo.
Ahí está su valor.
Un servidor de 4 GB puede ser el punto de partida para Docker y Portainer; que alcance o no depende de las aplicaciones que decidas sumarle. Piensa en automatizar tu casa, guardar las fotos de la familia, tu asistente de IA y ese boletín que juras que vas a lanzar, todo en un servidor que de verdad es tuyo.
Vamos por partes: instalarlo, asegurarlo y sacarle jugo.
¿Qué es Portainer exactamente?

Portainer es una interfaz web que se ejecuta como contenedor de Docker y administra el resto de tus contenedores a través del socket de Docker.
Dicho de otro modo, es un frontend para el navegador (una interfaz gráfica de Docker) que dispara los mismos comandos de Docker que escribirías a mano, y le suma la gestión de stacks, el control de acceso basado en roles (RBAC, por sus siglas en inglés; llega con Business Edition) y un tablero con el uso de CPU y de memoria.
Todo depende de la conexión al socket. En el comando de instalación aparece como -v /var/run/docker.sock:/var/run/docker.sock, y esa sola línea carga con todo el trabajo. Sin ella, Portainer es la interfaz de un host de Docker vacío. Con ella, es el control remoto del host completo.
Ojo con esto: cualquier proceso capaz de tocar /var/run/docker.sock puede controlar el daemon de Docker, y la documentación de seguridad de Docker (en inglés) es tajante: ese permiso es solo para usuarios de confianza, porque un contenedor iniciado a través del daemon puede montar el sistema de archivos completo del host y modificarlo sin restricción alguna. Cuando quien pregunta es Portainer, eso es una función. Cuando es aquel contenedor que levantaste la semana pasada y ya ni recuerdas por qué tiene acceso al socket, es un problema.
Trata el montaje del socket como el privilegio que es, y revisa con lupa a cualquier otro contenedor que lo pida.
¿Necesitas Portainer si ya tienes Docker?
No. Docker funciona perfectamente desde la terminal, y mucha gente pasa años con un par de contenedores sin ponerle nunca una interfaz encima.
Instala Portainer si:
- Vas a administrar más de dos o tres contenedores de aplicaciones distintas.
- Prefieres hacer clic en “reiniciar” a reescribir un comando de Compose a las 11 de la noche.
- Otra persona que no domina la terminal también necesita acceso.
- Quieres desplegar actualizaciones de stacks desde un repositorio de Git sin escribir tu propio script de despliegue.
Quédate solo con Docker si:
- Ejecutas uno o dos contenedores que casi nunca cambian.
- Docker Compose te resulta cómodo y no tienes intención de dejarlo.
Tampoco es una decisión marginal: en la Encuesta a Desarrolladores 2025 de Stack Overflow (en inglés), el 71% de quienes respondieron dijo usar Docker, el resultado más alto entre las tecnologías de desarrollo en la nube e infraestructura, tras subir 17 puntos porcentuales respecto a 2024. Y el proyecto Portainer acumula más de 38,000 estrellas en GitHub (en inglés) a agosto de 2026.
Hay alternativas. Dokploy, por ejemplo, apunta a ser una plataforma como servicio (PaaS, por sus siglas en inglés) autoalojada y completa: se encarga por ti de las aplicaciones, las bases de datos y el SSL. Portainer, en cambio, se mantiene pegado a Docker puro: los mismos archivos Compose, las mismas imágenes, con una interfaz encima.
¿Vives en tmux y solo ejecutas una aplicación? Cierra esta pestaña. No te hace falta. ¿Administras cuatro aplicaciones autoalojadas y este mes ya buscaste dos veces cómo consultar los logs de Docker? Sigue leyendo.
¿Qué tamaño de VPS necesitas para Docker y Portainer?
Portainer no publica un mínimo de RAM. Un VPS de 4 GB puede alcanzar para una pila pequeña, pero el número correcto sale de sumar los requisitos del sistema operativo, del daemon de Docker y de cada contenedor que planeas ejecutar.
Su propia página de requisitos (en inglés) casi no habla de memoria: el servidor de Portainer se distribuye como un contenedor ligero, y la única guía de rendimiento que la documentación establece se refiere al almacenamiento (te lo contamos unos párrafos más abajo). La cuenta de RAM que importa es la de tus cargas de trabajo: presupuesta el sistema operativo, el daemon de Docker y cada contenedor que vayas a ejecutar.
Así se traduce esa suma a planes concretos:

La hoja de cálculo no tiene misterio: busca la RAM que documenta cada aplicación de tu lista, súmale el sistema operativo y el daemon de Docker, y deja un colchón para los picos de uso. Como Portainer no exige un mínimo de RAM, quienes llenan el servidor son tus aplicaciones, no la interfaz.
En DreamHost, nuestro VPS Hosting se vende en cuatro planes Stack escalonados por RAM (Stack 4, 8, 16 y 32). El plan de entrada, Stack 4 (2 vCPU, 4 GB de RAM, 75 GB de NVMe SSD y acceso root completo), encaja de manera natural con un host de Docker pequeño. Con facturación mensual cuesta $8.99 USD al mes durante los primeros 3 meses y después se renueva automáticamente a $15.99 USD al mes (a agosto de 2026; al finalizar la compra se cobra el periodo completo más impuestos, y las cifras vigentes están siempre en la página del VPS con Docker + Portainer).
Si todavía no decides si el autoalojamiento merece tu tiempo, Stack 4 es el tamaño para descubrirlo: suficiente para probar en serio, sin pagar capacidad de sobra. Si tu suma lo rebasa, subes de plan y tu entorno se muda contigo. Un aviso: por ahora no es posible bajar a un Stack más pequeño, así que conviene empezar chico a propósito.
Una nota sobre el almacenamiento: el volumen de datos de Portainer guarda su base de datos y su configuración, y también un clon de cada repositorio de Git desde el que despliegues stacks; la documentación de Portainer advierte que los repositorios grandes o numerosos pueden ocupar mucho disco. Y la guía de rendimiento que la documentación sí publica habla de disco, no de memoria: considera ideal un desempeño de clase SSD (≈3.5 MB/s, 30,000 operaciones de entrada y salida por segundo (IOPS, por sus siglas en inglés) o más, y una latencia de escritura por debajo de 10 ms). Stack 4 incluye 75 GB de almacenamiento NVMe SSD.
¿Cómo instalar Docker y Portainer en un VPS?

Son siete pasos; cuánto tarden la descarga y la instalación depende de tu VPS y de tu conexión de red. Los comandos de los pasos 2 a 6 están pensados para Ubuntu y puedes pegarlos en orden en un servidor limpio. Solo un comando pide un dato que únicamente tú conoces (tu dirección IP, en el paso 4), y el propio paso lo señala. (¿Prefieres ahorrarte la lista entera? La biblioteca de aplicaciones de DreamHost VPS Hosting trae una imagen de Docker + Portainer con los dos ya configurados.)
1. Elige tu distribución de Linux
Esta guía trabaja con Ubuntu 24.04 LTS. A agosto de 2026, Docker Engine es compatible con Ubuntu 22.04, 24.04 y 26.04 LTS. Ubuntu es, además, una de las opciones de sistema operativo preinstaladas en DreamHost VPS Hosting.
Debian y la familia RHEL (AlmaLinux, por ejemplo) también sirven, pero tienen sus propias instrucciones en la documentación de Docker, y los comandos de esta guía no funcionan ahí tal cual. La familia RHEL trae un detalle adicional: la documentación de instalación de Portainer da por hecho que SELinux está desactivado y, si necesitas mantenerlo activo, indica pasarle la bandera --privileged a Docker al desplegar Portainer. Si esa oración te sonó a otro idioma, quédate con Ubuntu.
¿No estás seguro de qué versión de Ubuntu tienes? Te enseñamos cinco formas de comprobarlo.
2. Instala Docker desde su repositorio oficial
Nada de apt install docker.io, y nada de instalar Docker con snap: la documentación oficial de instalación de Docker (en inglés) pone a docker.io en la lista de paquetes no oficiales que deben desinstalarse antes de instalar Docker Engine, y la documentación de instalación de Portainer advierte que el paquete de snap puede provocar problemas de compatibilidad.
Empieza por limpiar cualquier paquete en conflicto. En un servidor recién creado casi siempre saldrá vacío: dpkg puede mostrar advertencias de “no packages found matching” y apt puede responder que ninguno de esos paquetes está instalado. Según la propia documentación de instalación de Docker, eso es lo esperado, y el comando termina bien en cualquiera de los dos casos:
sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc docker-buildx podman-docker containerd runc | cut -f1) Ahora agrega la llave GPG de Docker (cada línea de abajo es un comando por separado):
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc Ahora toca el repositorio apt de Docker. Este bloque escribe la definición del repositorio en /etc/apt/sources.list.d/docker.sources, el archivo que usa la documentación de instalación de Docker, y detecta en automático tu versión de Ubuntu y la arquitectura de tu CPU:
sudo tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "$VERSION_CODENAME")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update Cierra instalando Docker Engine y el plugin de Compose en un solo comando:
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin 3. Comprueba que Docker funcione
Ejecuta sudo docker run hello-world.
¿No apareció el mensaje “Hello from Docker!”? Repara el daemon antes de ponerle Portainer encima.
4. Conecta UFW con Docker antes de encender Portainer
Aquí viene lo que la mayoría de las guías cuenta al final, cuando el daño ya está hecho: cuando Docker publica un puerto, el tráfico hacia ese puerto se desvía antes de tocar las cadenas que UFW filtra, así que el puerto queda accesible desde el internet público aunque UFW jure que está denegado. (La explicación completa está más abajo.) Al arrancar Portainer, su puerto 9443 quedará abierto al mundo justo durante los cinco minutos en los que el primero en llegar se queda con la cuenta de administrador. Por eso el firewall se arregla antes.
Si UFW aún no está activo, permite SSH y enciéndelo. (¿Tu SSH usa un puerto personalizado? Permite ese puerto en vez del 22, o este será el paso en el que te quedes fuera de tu propio servidor.)
sudo ufw allow 22/tcp
sudo ufw enable Luego instala chaifeng/ufw-docker (en inglés), una herramienta de terceros que añade al final de /etc/ufw/after.rules las reglas necesarias para que el tráfico hacia los puertos publicados por Docker se filtre a través de la cadena DOCKER-USER. Estos comandos fijan la versión 251123 del proyecto (de noviembre de 2025) en vez de descargar la rama master, que cambia sin previo aviso, y usan curl, que instalaste en el paso 2:
sudo curl -fsSL -o /usr/local/bin/ufw-docker \
https://github.com/chaifeng/ufw-docker/raw/251123/ufw-docker
sudo chmod +x /usr/local/bin/ufw-docker
sudo ufw-docker install
sudo ufw reload Después de la recarga, los puertos publicados por contenedores ya se filtran con UFW. Si tu política de tráfico enrutado rechaza las conexiones entrantes y no existe una regla que permita el puerto, las conexiones públicas siguen bloqueadas hasta que las autorices de forma explícita. (El proyecto ufw-docker anota que, si las reglas no surten efecto tras reiniciar UFW, reiniciar el servidor lo corrige.)
Toca autorizar por adelantado tu propio acceso a la interfaz de Portainer. Cambia YOUR_HOME_IP por la IP pública desde la que vas a conectarte:
sudo ufw route allow proto tcp from YOUR_HOME_IP to any port 9443 Con la regla lista antes del arranque, la interfaz solo responde a tu IP, incluso durante la ventana del administrador inicial. El costo: muchas conexiones caseras cambian de IP cada cierto tiempo, así que tal vez debas actualizar la regla más adelante. Si eso te molesta, la salida definitiva es una VPN delante de la interfaz (la vemos en la sección de seguridad).
5. Crea un volumen persistente para los datos de Portainer
Ejecuta sudo docker volume create portainer_data.
Con la base de datos de Portainer en un volumen de Docker, fuera del contenedor, una actualización de Portainer no se lleva tu configuración.
6. Levanta Portainer Community Edition
El comando sale de la documentación de instalación de Portainer para Linux (en inglés), con una bandera menos: el original publica también el puerto 8000, un túnel TCP que solo hace falta si más adelante conectas entornos remotos mediante Edge Agents. En una instalación de un solo host sobra, así que lo omitimos:
sudo docker run -d \
-p 9443:9443 \
--name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:lts Línea por línea:
-dlo ejecuta en segundo plano.-p 9443:9443publica la interfaz web de Portainer por HTTPS: el puerto que autorizaste para tu IP en el paso 4.--restart=alwaysvuelve a levantar Portainer después de cada reinicio.- Las dos banderas
-vson el montaje del socket y el volumen persistente del paso 5. :ltste ancla a la línea de soporte a largo plazo (Long Term Support) de Portainer, la misma etiqueta que usa su documentación de instalación.
7. Entra a la interfaz y crea tu cuenta de administrador
Abre https://YOUR_VPS_IP:9443 en tu navegador (desde la dirección IP que autorizaste en el paso 4).
Acepta la advertencia del certificado autofirmado y verás la pantalla para crear el usuario administrador inicial. Escoge un nombre que no sea admin, define una contraseña fuerte y guárdala en un lugar confiable. Listo: ya estás dentro.
¿Por qué Portainer dejó de responder a los cinco minutos?
Porque en su primera instalación Portainer espera exactamente cinco minutos a que alguien lo reclame. Si nadie aparece, echa el cerrojo.
Sus preguntas frecuentes (en inglés) lo dicen sin rodeos: como medida de seguridad, en la primera instalación Portainer espera 5 minutos a que se cree el usuario administrador como parte de la configuración inicial; si nadie lo crea dentro de esos 5 minutos, el servidor de Portainer deja de escuchar solicitudes.
En otras palabras: si el paso 6 te encontró preparando un sándwich, tu instalación ahora te ignora, y no rompiste nada.
La solución es un comando: sudo docker restart portainer.
El contenedor vuelve a arrancar, obtienes otros cinco minutos y regresas a la pantalla de crear administrador. Repite cuantas veces necesites. Bienvenido al autoalojamiento.
¿Instalas en serie para una flota (Ansible, Terraform, un pipeline de despliegue)? Portainer acepta la bandera --admin-password-file, que crea el usuario administrador desde un archivo en el primer arranque del contenedor, sin tener que correr para completar la pantalla inicial. La sintaxis está en su documentación de opciones de línea de comandos (en inglés). Para un solo VPS, con el truco del reinicio alcanza.
¿Cómo evitar que Docker se salte tu firewall?

Ya lo hiciste, en el paso 4. Lo que sigue es entender qué pasó en realidad, cómo abrir puertos cuando tú lo decidas y cómo comprobar que funciona.
El problema: con docker run -p 80:80, el puerto publicado responde al internet público aunque ufw status marque el puerto 80 como denegado. La documentación de filtrado de paquetes de Docker (en inglés) lo explica: Docker enruta el tráfico de los contenedores en la tabla nat, de modo que los paquetes se desvían antes de llegar a las cadenas INPUT y OUTPUT que UFW usa.
UFW no falló. Simplemente está cuidando la puerta equivocada.
El remedio que la propia Docker señala es la cadena de iptables DOCKER-USER, creada por Docker justamente para las reglas definidas por el usuario y procesada antes que las reglas de sus propias cadenas. El script ufw-docker del paso 4 conecta UFW con esa cadena: añade un bloque de reglas (delimitado por los marcadores # BEGIN UFW AND DOCKER y # END UFW AND DOCKER) al final de /etc/ufw/after.rules, para que se cargue junto con el resto de tu configuración de UFW.
Para exponer un puerto de contenedor a propósito (por ejemplo, una aplicación web en el puerto 80 del contenedor), usa una regla de ruta:
sudo ufw route allow proto tcp from any to any port 80 La documentación de ufw-docker advierte una trampa: la regla usa el puerto del contenedor, no el del host. Si publicaste con -p 8080:80, la regla correcta es la de arriba (puerto 80), no una con el 8080.
Para comprobarlo desde fuera, conéctate desde una red que no esté en tu lista de permitidas; el hotspot de tu celular basta. Este comando debería agotar su tiempo de espera en lugar de mostrarte el inicio de sesión de Portainer:
curl -k --max-time 5 https://YOUR_VPS_IP:9443 Repite el comando desde la IP que autorizaste en el paso 4 y deberías recibir HTML. Que UFW diga “denegado” es solo una afirmación; que una red desconocida se quede esperando es la prueba.
Para revertirlo todo, ejecuta sudo ufw-docker uninstall, que según la documentación del proyecto restaura tu configuración de UFW y elimina los archivos que instaló, y después sudo ufw reload. Otra vía es borrar a mano el bloque entre los marcadores # BEGIN UFW AND DOCKER y # END UFW AND DOCKER de /etc/ufw/after.rules y recargar UFW.
Esta trampa sorprende a ingenieros con oficio, tanto en máquinas personales como en servidores de producción: UFW afirma una cosa, el internet público demuestra otra y la verdad está en iptables. Y si prefieres que Portainer nunca exponga un puerto público, colócale delante un túnel VPN (en inglés) como WireGuard.
¿Qué conviene asegurar justo después del primer inicio de sesión?
Ya entraste. Antes de cerrar esa pestaña del navegador, haz estas cinco cosas; las primeras cuatro vienen directo de la guía de seguridad de Portainer (en inglés):
- Activa Force HTTPS only. La instalación de esta guía publica únicamente el puerto 9443, así que de entrada no hay puerto HTTP expuesto. El interruptor Force HTTPS only, en Settings → SSL Certificate, lo vuelve permanente: de acuerdo con la documentación de ajustes de Portainer, apaga por completo la escucha en el puerto HTTP heredado (9000), y así un redespliegue futuro con
-p 9000:9000no puede reabrir un camino sin cifrar. - Cambia el certificado autofirmado. Sube un certificado generado por ti, o coloca delante de Portainer un proxy inverso NGINX con un certificado de Let’s Encrypt. Pasado el primer día, saltarte la advertencia del navegador en cada visita es un hábito que te va a pasar factura.
- Elige un nombre de administrador de verdad. Quedarte con el usuario admin le regala a un atacante una credencial que ya no tiene que adivinar. Usa un nombre específico tuyo.
- Limita la interfaz a una VPN. Ejecutar Portainer detrás de una VPN de WireGuard es el patrón que la guía de seguridad de Portainer recomienda. Un puerto 9443 restringido a tu IP de origen (paso 4) está bien; un 9443 accesible solo desde una red privada está mejor.
- Audita cada montaje del socket de Docker. Todo lo que alcanza
/var/run/docker.sockcontrola el daemon de Docker y, con él, el host. No montes el socket en otros contenedores a la ligera: cada montaje extra es una puerta más hacia el host. Si un contenedor insiste en que necesita el socket, pregúntale para qué; si la respuesta es “para monitoreo”, evalúa un proxy para el socket.
¿Qué ganas con Portainer en el día a día?
El premio por instalar Portainer llega el día en que un contenedor se porta mal y, en vez de abrir una sesión de SSH para reiniciarlo, haces clic en un botón. El premio mayor es la gestión de stacks.
Un stack de Portainer es una aplicación de varios contenedores definida en un archivo de Docker Compose. Según la documentación oficial de stacks (en inglés), Portainer despliega como stacks las configuraciones de Docker Compose compatibles por cuatro caminos:
- Pegar el Compose en el editor web
- Subir un archivo Compose
- Apuntar Portainer hacia un repositorio de Git
- Desplegar desde una plantilla personalizada

El camino que importa es el de Git. Apuntas Portainer a un repositorio (público o con credenciales) y a la ruta del docker-compose.yml, y enciendes las actualizaciones GitOps. Portainer revisa el repositorio con la frecuencia que definas, o te entrega una URL de webhook para agregar a tu host de Git (que puede dispararse desde una GitHub Action, por ejemplo). Cuando el archivo Compose cambia en el repositorio, Portainer lo descarga y redespliega en automático. Y sí, todo esto está en Community Edition: en la página de stacks de la documentación, la única opción marcada como exclusiva de Business Edition es la de volúmenes con rutas relativas.
Es “desplegar con cada push” en versión autoalojada, sin pagarle a una PaaS por el privilegio.
Las victorias pequeñas también cuentan: los logs en un panel en lugar de docker logs -f, reinicios con un clic, reconstruir un stack con un botón y gráficas de recursos que entiendes en tres segundos sin abrir docker stats.
¿Y el puerto 8000? El día que conectes un entorno remoto con un Edge Agent, redespliega Portainer agregando -p 8000:8000 y luego permite en UFW el puerto 8000 del contenedor desde la IP pública de salida de cada Edge Agent, sustituyendo EDGE_AGENT_IP aquí: sudo ufw route allow proto tcp from EDGE_AGENT_IP to any port 8000.
¿Cómo respaldar Portainer y tus contenedores?
Un volumen es persistencia, no un respaldo. El volumen portainer_data del paso 5 sobrevive a las actualizaciones del contenedor, pero comparte disco con todo lo demás. Por eso un plan de respaldo serio tiene tres partes, y las tres terminan fuera del VPS.
1. La configuración de Portainer. En la interfaz, entra a Settings → Back up Portainer y haz clic en Download backup file. De acuerdo con la documentación de ajustes de Portainer (en inglés), obtienes un tar.gz con todo lo que Portainer guarda en su volumen /data, cifrado con contraseña si así lo pides, y ese archivo basta para restaurar Portainer. El alcance también está claro en la documentación: respalda solo la configuración de Portainer, no los contenedores, stacks ni volúmenes que hayas desplegado. (Los respaldos programados hacia S3 existen, pero únicamente en Business Edition; en CE, agenda un recordatorio recurrente en tu calendario.)
2. Los datos de tus aplicaciones. La documentación de volúmenes de Docker (en inglés) señala los volúmenes con nombre como el mecanismo preferido para persistir los datos de un contenedor, y más fáciles de respaldar o migrar que los bind mounts. Para archivar uno, móntalo en modo de solo lectura dentro de un contenedor desechable y comprímelo con tar (sustituye el nombre por el de tu volumen):
sudo docker run --rm \
-v myapp_data:/source:ro \
-v "$PWD":/backup \
alpine tar czf /backup/myapp_data.tgz -C /source . Con las bases de datos, usa la herramienta de volcado del propio motor (pg_dump, mysqldump) en lugar de copiar los archivos de datos en caliente, para no archivar un archivo a medio escribir. Y saca los archivos del servidor con regularidad: rsync o scp hacia otra máquina, o un almacenamiento de objetos. Un respaldo que vive en el mismo disco que respalda muere junto con ese disco.
3. Tus archivos Compose y tus secretos. Si despliegas stacks desde Git, los archivos Compose ya están fuera del host. Lo que Git no tiene es lo que nunca le confiaste: archivos .env, llaves de API y contraseñas escritas al momento del despliegue. Los directorios montados con bind tampoco entran en el respaldo de volúmenes anterior. Haz un inventario aparte de todo eso y respáldalo cifrado.
Y ensaya la restauración antes de necesitarla. Según la documentación de Portainer, la restauración de configuración solo funciona en una instancia nueva: despliega otro contenedor de Portainer con un volumen de datos vacío (un VPS desechable o tu laptop sirven), elige Restore Portainer from backup durante la configuración inicial y verifica que entras con tus credenciales anteriores y que tus definiciones de stacks siguen ahí. Ese ensayo cubre solo la parte 1, la configuración de Portainer. Las partes 2 y 3 exigen su propia prueba, aplicación por aplicación: restaura el archivo en un volumen nuevo, arranca la aplicación contra ese volumen y confirma que los datos de verdad existen. Un respaldo que nunca probaste no es un respaldo: es una ilusión con nombre de archivo.
¿Cuánto cuesta Portainer? ¿Y cuándo deja de ser gratis?
Portainer es gratuito por partida doble. Community Edition es gratuita y de código abierto (licencia zlib), sin clave de licencia de por medio. Y Portainer Business Edition es gratis para siempre hasta 3 nodos (en inglés): todas las funciones Business, sin fecha de caducidad y sin tarjeta de crédito. Solo te registras para recibir una clave de licencia gratuita.
| Edición | Costo | Nodos | Ideal para |
|---|---|---|---|
| Community Edition | Gratuita, de código abierto | Sin licencias por nodo | Proyectos personales, homelabs y autoalojamiento en un solo VPS |
| Business Edition (3 nodos gratis) | Gratuita, sin límite de tiempo | Hasta 3 | Homelabs pequeños que quieren funciones Business como RBAC |
| Home & Student | $155 USD al año | Hasta 15 | Homelabs grandes y estudiantes; solo uso no comercial |
| Business Starter | Desde $105 USD al mes | 5, 10 o 15 | Equipos pequeños que administran infraestructura en producción (soporte comunitario) |
| Business Scale | Desde $209 USD al mes | De 5 a 35 | Equipos en crecimiento que requieren soporte 9×5 |
| Enterprise | Cotización | A la medida | Cumplimiento normativo y soporte prioritario |
Los precios provienen de la página de precios de Portainer (en inglés) a agosto de 2026; Starter y Scale piden un compromiso anual.
¿Con cuál quedarte? Para un solo VPS con un solo administrador, Community Edition: es de código abierto, no pide registro y hace todo lo de esta guía, despliegues desde Git incluidos. Si necesitas control de acceso por roles (RBAC) para otra persona, o ya administras dos o tres servidores, mejor toma el nivel gratuito de 3 nodos de Business Edition: el mismo software con las funciones Business encendidas, gratis mientras no pases de tres nodos. Los planes de pago solo tienen sentido cuando un equipo administra una cantidad considerable de nodos. Y antes de asumir que pagar equivale a tener soporte, revisa la letra: a agosto de 2026, la página de precios de Portainer marca soporte comunitario en el plan Starter, soporte 9×5 al siguiente día hábil del plan Scale en adelante y soporte prioritario en Enterprise.
¿Instalar Portainer o seguir sin él?
La respuesta honesta cabe en dos oraciones:
✅ Si vas a compartir el servidor, desplegar desde Git o ejecutar más de tres contenedores de aquí a un año, instala Portainer ahora, con el host recién estrenado y tus hábitos todavía por formarse.
❌ Si tienes una sola aplicación tranquila y la terminal te basta, no vas a extrañar una interfaz que nunca instalaste.
La pregunta de fondo no es Portainer sí o Portainer no; es si el autoalojamiento va contigo. Y esa la contestaste cuando abriste esta pestaña.
Un VPS de 4 GB, Docker y Portainer CE bastan para autoalojarte en serio: elige tus aplicaciones, suma sus requisitos documentados y deja que la cuenta, y no el antojo, decida cuándo le toca crecer al servidor.
No es un mal trato.
Preguntas frecuentes sobre Docker y Portainer
¿Se puede ejecutar Docker en un VPS?
Sí. Un VPS con acceso root es de los lugares más flexibles para ejecutar Docker: instalas Docker Engine sobre el Linux del servidor y cada aplicación se ejecuta en su propio contenedor. El punto que suele confundir: el VPS es el servidor virtual que rentas, y Docker es el software que instalas en él para aislar aplicaciones en contenedores. Sirve cualquier VPS con acceso root y RAM suficiente para tus contenedores; DreamHost VPS Hosting ofrece incluso una imagen con Docker + Portainer preinstalados.
¿Para qué sirve Portainer?
Portainer sirve para administrar contenedores de Docker, Docker Swarm y Kubernetes desde una interfaz web. Se ejecuta como un contenedor de Docker más, se conecta al socket de Docker del host y te da visibilidad y control sobre el resto de los contenedores del host: iniciarlos y detenerlos, desplegar stacks de varios contenedores, revisar logs y gestionar los accesos de usuarios sin abrir una sesión de SSH.
¿Necesito Portainer si tengo Docker?
No, no necesitas Portainer para usar Docker. Docker se maneja completo desde la terminal, y hay quien se autoaloja por años sin instalar interfaz alguna.
Portainer se justifica cuando administras más de dos o tres contenedores, compartes el acceso con alguien ajeno a la terminal o despliegas actualizaciones de stacks desde un repositorio de Git. Si tienes uno o dos contenedores estables y Docker Compose te funciona, sáltatelo.
¿En qué puerto funciona Portainer?
Portainer entrega su interfaz web por HTTPS en el puerto 9443 de manera predeterminada. El comando oficial de la documentación de instalación de Portainer para Linux (en inglés) publica además el puerto 8000, un túnel TCP que solo usan los Edge Agents cuando más adelante conectas hosts remotos de Docker; como es opcional, la instalación de un solo host de esta guía omite por completo la bandera -p 8000:8000.
¿Cuánta RAM necesita Portainer?
Los requisitos de sistema vigentes de Portainer no publican un mínimo de RAM: el servidor se ejecuta como un contenedor ligero, y la guía de rendimiento de su documentación trata sobre disco, no sobre memoria. Calcula la RAM sumando los requisitos documentados del sistema operativo, del daemon de Docker y de cada aplicación que vayas a ejecutar, y deja margen para los picos.
En DreamHost, Stack 4, el plan de entrada de nuestro VPS Hosting, incluye 4 GB de RAM: un punto de partida para una pila pequeña de contenedores de proyectos personales como Ghost o n8n. Si 4 GB alcanzan depende de las aplicaciones que de verdad ejecutes; cuando la suma crezca, puedes pasar a un plan Stack mayor.
¿Portainer es gratis?
Sí, por partida doble. Portainer Community Edition es gratuita y de código abierto, sin clave de licencia. Portainer Business Edition (que suma funciones como el control de acceso por roles) también es gratuita hasta 3 nodos, con funciones completas y sin límite de tiempo; te registras para recibir una clave de licencia gratuita en lugar de pagar. Por encima de tres nodos, los precios de Business parten de $105 USD al mes en el plan Starter según la página de precios de Portainer (en inglés) a agosto de 2026, y la licencia Home & Student de $155 USD al año cubre homelabs no comerciales de hasta 15 nodos.
¿Puede Portainer administrar varios hosts de Docker?
Sí, mediante Agents y Edge Agents. El Agent estándar escucha en el puerto 9001 de cada host remoto; los Edge Agents se conectan en el sentido contrario, hacia el puerto de túnel 8000 del servidor de Portainer, y de acuerdo con la documentación de requisitos de Portainer no necesitan puertos de entrada abiertos. Para autoalojarte en un solo VPS no requieres nada de esa maquinaria; por eso esta guía quita la bandera del puerto 8000 que trae el comando oficial de Portainer. El día que conectes un entorno remoto con un Edge Agent, redespliega Portainer agregando -p 8000:8000 y luego permite en UFW el puerto 8000 del contenedor desde la IP pública de salida de cada Edge Agent, sustituyendo EDGE_AGENT_IP aquí: sudo ufw route allow proto tcp from EDGE_AGENT_IP to any port 8000.
¿Docker se salta UFW en un VPS?
Sí. De manera predeterminada, Docker se salta UFW porque gestiona el tráfico de los contenedores en la capa NAT de iptables, que se procesa antes que las cadenas INPUT y OUTPUT que UFW usa.
La documentación de filtrado de paquetes de Docker (en inglés) lo confirma: los paquetes se desvían antes de alcanzar las cadenas INPUT y OUTPUT que UFW utiliza. La corrección es colocar tus reglas en la cadena de iptables DOCKER-USER, y una herramienta comunitaria que conecta UFW con esa cadena es chaifeng/ufw-docker (en inglés), instalada en el paso 4 de esta guía, antes del primer arranque de Portainer.

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