Saltar al contenido
●homelab@casa:~/servidor
~$homelabista

// PORTAINER

Portainer: gestionar Docker desde el navegador (guía)

Portainer para Docker en casa: instalación, actualización de stacks y cómo conservar la imagen anterior sin confundirla con una copia de tus datos.

16 min de lecturaGonzalo
  • #portainer
  • #docker
  • #contenedores
  • #self-hosted
  • #homelab
Portainer, el panel web para gestionar Docker: arrancar, parar y actualizar contenedores desde el navegador en un mini PC de homelab encendido las 24 horas

Si ya tienes un par de contenedores corriendo en casa, sabes cómo es la rutina: entras por SSH al servidor, tiras de memoria con docker ps, buscas el nombre exacto del contenedor, y rezas por acordarte de la línea larga para ver sus registros. Portainer cambia esa rutina por un clic. Es una interfaz web —un panel que abres en el navegador— para gestionar Docker, el sistema que empaqueta cada aplicación en su propia caja aislada llamada contenedor. En vez de escribir comandos en la terminal, ves tus contenedores en una lista, con botones para arrancarlos, pararlos, reiniciarlos o mirar qué están diciendo.

No es magia ni sustituye a saber lo que haces. Es una capa cómoda encima de Docker que, en un homelab casero encendido a todas horas, te ahorra tiempo y te evita errores tontos. En esta guía vas a ver qué es exactamente, para quién tiene sentido, cómo se instala (es un contenedor más) y qué puedes hacer con él, más las alternativas por si no es lo tuyo.

[aff]Hay enlaces de afiliado más abajo: si compras algo desde ellos me llevo una pequeña comisión y a ti no te cuesta ni un céntimo más. En calidad de Afiliado de Amazon, obtengo ingresos por las compras adscritas que cumplen los requisitos aplicables.

¿Ya lo tienes instalado? Ve a cómo actualizar un stack y conservar la imagen anterior.

Qué es Portainer exactamente

Portainer es, él mismo, un contenedor de Docker. Lo instalas como cualquier otro servicio y, a partir de ahí, se convierte en el mando a distancia de todo lo demás que corre en esa máquina. Por dentro tiene dos piezas:

  • Portainer Server: el contenedor principal, el que sirve la web que abres en el navegador y guarda la configuración.
  • Portainer Agent: una pieza opcional que se instala en otras máquinas para gestionarlas desde el mismo panel. Si solo tienes un servidor en casa, no lo necesitas: el Server habla directamente con el Docker local.

Hay dos versiones. Portainer CE (Community Edition, “edición comunitaria”) es gratis y de código abierto, y es la que casi todo el mundo usa en casa. Y Portainer BE (Business Edition), la comercial, con funciones para empresa; volvemos a ella más abajo, porque tiene un matiz interesante para homelab.

Lista de contenedores en Portainer: cada fila muestra el nombre, el estado (running, healthy, unhealthy), acciones rápidas, el stack al que pertenece, la imagen, la fecha, la IP y los puertos publicados
La vista de contenedores: estado de cada uno, acciones rápidas (registros, consola, estadísticas) y los puertos a un vistazo. Interfaz de Portainer, documentación oficial (docs.portainer.io).

Esa lista de arriba es el 80 % de por qué la gente instala Portainer. De un vistazo ves qué contenedores están running (en marcha), cuáles marcan healthy o unhealthy (si la aplicación trae una comprobación de salud propia), y tienes a mano los botones para ver sus registros o abrir una consola dentro del contenedor sin escribir una sola orden.

Para quién sí y para quién no

Me mojo, porque no es para todo el mundo:

Sí, si: llevas varios contenedores en casa (Plex o Jellyfin, Home Assistant, un gestor de descargas, bases de datos…), no vives en la terminal y quieres ver el estado de todo de un vistazo, reiniciar algo desde el móvil o revisar por qué un servicio se ha caído sin tener que buscar el comando. También si estás empezando con Docker y el panel te ayuda a entender qué es una imagen, un volumen o una red mientras aprendes.

No, si: ya defines todo tu homelab con archivos docker-compose.yml versionados y te sientes cómodo con la terminal; en ese caso Portainer te aporta poco más que una foto bonita. Y ojo con la seguridad: para funcionar, Portainer se conecta al “enchufe” de control de Docker (el socket /var/run/docker.sock). Quien controla ese socket controla Docker entero, y eso equivale a mandar sobre toda la máquina. No expongas el panel de Portainer a internet sin protección; en casa, déjalo en tu red local o detrás de una VPN, como la que explico en la guía para montar una VPN casera con WireGuard.

cómo encaja Portainer
HTTPS :9443docker.sockNavegadortu PC o móvilPortainercontenedor webMotor de Dockercontenedores y demásclic, no comandostraduce clics a órdenesquien manda de verdad

Portainer es una capa cómoda entre tú y el motor de Docker. Los clics del panel se convierten en las mismas órdenes que darías en la terminal.

Cómo instalarlo (es un contenedor más)

Necesitas Docker ya instalado y funcionando en la máquina. La documentación oficial de Portainer CE para Linux recomienda instalar Docker siguiendo sus instrucciones oficiales y evitar la versión por snap en Ubuntu, que da problemas de compatibilidad. Con Docker listo, la instalación de Portainer CE son dos órdenes.

Primero creas el volumen donde Portainer guardará su base de datos. Un volumen es el almacén persistente de un contenedor: lo que vive ahí sobrevive aunque borres y recrees el contenedor.

docker volume create portainer_data

Y después levantas el contenedor de 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:lts

Vale la pena entender cada trozo, que es donde la gente se pierde:

  • -p 9443:9443 abre el puerto 9443, por donde sirve la interfaz web. Portainer usa HTTPS con un certificado autofirmado que se genera él solo, así que la primera vez el navegador te avisará de que el certificado no es “de confianza”: es normal en tu propia red, aceptas y sigues.
  • -p 8000:8000 es un puerto opcional, solo necesario si vas a usar los Edge Agents para gestionar máquinas remotas. En un servidor casero único puedes quitarlo.
  • --restart=always hace que Portainer vuelva a arrancar solo si reinicias la máquina. Imprescindible en un equipo 24/7.
  • -v /var/run/docker.sock:/var/run/docker.sock es lo que le da a Portainer el control de Docker (el socket del que hablábamos). Sin esta línea, no puede gestionar nada.
  • portainer/portainer-ce:lts es la imagen: la edición comunitaria, etiqueta lts (long-term support, “soporte a largo plazo”), la versión estable recomendada.

Cuando el contenedor arranque, abre https://IP-DE-TU-SERVIDOR:9443 en el navegador. La primera pantalla te pide crear el usuario administrador con su contraseña. Ese paso hay que hacerlo pronto: por seguridad, si tardas mucho en configurarlo, Portainer bloquea el registro inicial y toca reiniciar el contenedor. Hecho eso, ya estás dentro.

Qué puedes hacer desde el navegador

Una vez dentro, Portainer te enseña todo lo que Docker gestiona por debajo, cada cosa en su pestaña:

  • Contenedores: la lista principal. Arrancar, parar, reiniciar, ver registros (los mensajes que suelta la aplicación), abrir una consola dentro del contenedor, y mirar estadísticas de CPU y memoria en vivo.
  • Stacks: así llama Portainer a un despliegue de Docker Compose, es decir, un grupo de contenedores definidos juntos (por ejemplo, una app y su base de datos). Puedes pegar un docker-compose.yml en el editor web y desplegarlo entero desde el navegador.
  • Imágenes: las plantillas de las que nacen los contenedores. Descargar versiones nuevas, ver cuánto ocupan y borrar las que ya no usas para recuperar disco.
  • Volúmenes y redes: el almacenamiento persistente y las redes internas por las que se hablan tus contenedores. Crearlos, revisarlos y limpiar lo que quedó huérfano.

Si el disco se está llenando, consulta cómo distinguir datos, imágenes y logs de Docker antes de limpiar. Un volumen sin contenedor no es necesariamente un dato prescindible.

Lista de stacks en Portainer: cada fila es un despliegue de Docker Compose, con su nombre, tipo Compose, si las imágenes están actualizadas, quién lo creó y cuándo
Los stacks son despliegues de Docker Compose gestionados desde la web: cada fila agrupa varios contenedores. Interfaz de Portainer, documentación oficial (docs.portainer.io).

El editor de stacks permite cambiar la configuración y desplegarla desde el navegador. Antes de actualizar una imagen, guarda una vía de recuperación: el botón de despliegue no la crea por ti.

Actualizar un stack sin perder la vuelta atrás

Pulsar «Update» no guarda por ti el estado anterior. Antes de actualizar, conserva el Compose vigente, sus archivos de entorno y una copia recuperable de los datos. Un caso de soporte de Portainer ilustra el problema: los contenedores seguían funcionando, pero el usuario ya no podía abrir sus Compose y su copia no incluía los últimos cambios. Que la aplicación arranque no te dice si podrás reconstruirla.

Si lo gestionas desde Portainer

Abre Stacks → tu stack y comprueba de dónde sale su configuración. Si viene de Git, guarda la revisión vigente y cambia el repositorio; si lo creaste en el editor, guarda el YAML y los archivos que utiliza antes de editar. Guarda las variables y claves en un lugar privado, no en una captura ni en un repositorio público. La copia de configuración de Portainer tampoco sustituye la copia de los volúmenes de las aplicaciones.

Lee las notas de la versión que vas a instalar. Una etiqueta como latest o lts puede apuntar mañana a otra imagen. Una versión explícita ayuda a controlar el salto; un digest identifica el contenido exacto de la imagen. En la documentación de edición de stacks, Re-pull image and redeploy fuerza la descarga de las imágenes referenciadas. No significa «guardar un punto de restauración» y puede interrumpir el servicio. Un stack puede contener varias aplicaciones: revisa el conjunto antes de actualizarlo.

Tras desplegar, espera a que termine y abre la aplicación. Comprueba una operación que te importe, como leer un documento guardado. Mira también sus registros. El indicador running solo dice que el proceso está en marcha; healthy depende de lo que compruebe su prueba de salud.

Si tu stack lo administra Docker Compose por terminal

Este ejemplo es para Docker Standalone con Compose, no para Swarm ni para tomar por terminal el control de un stack que administra Portainer. Ejecuta los comandos desde la carpeta y con los mismos archivos, variables y nombre de proyecto que usaste al desplegar. Aquí el servicio se llama app: sustitúyelo por el nombre que devuelva config --services.

docker compose config --quiet
docker compose config --services
docker compose config --images

config --quiet valida la configuración, no prueba que la aplicación vaya a funcionar. Evita pegar la salida completa de docker compose config en un foro: al resolver variables puede incluir secretos.

Antes de cambiar la imagen, anota cuál usa el contenedor actual. Este bloque presupone una sola réplica en marcha del servicio app y se detiene si no la encuentra:

(
  set -eu
  contenedor=$(docker compose ps -q app)
  test -n "$contenedor"
  imagen_anterior=$(docker inspect --format '{{.Image}}' "$contenedor")
  respaldo="local/app-rollback:$(date -u +%Y%m%d-%H%M%S)"
  docker image tag "$imagen_anterior" "$respaldo"
  printf 'Imagen anterior conservada: %s\n' "$respaldo"
)

Guarda la referencia que imprime junto al Compose anterior. La etiqueta conserva una referencia local a la imagen; no copia los datos ni protege frente a perder el disco. No borres esa imagen con una limpieza mientras la necesites para volver atrás.

Con la copia de datos hecha según las instrucciones de la aplicación, cambia image: a la versión elegida. Si la actualización permite cambiar solo ese servicio y sus dependencias ya están en marcha:

docker compose config --quiet
docker compose pull app
docker compose up -d --no-deps app
docker compose ps app
docker compose logs --tail=50 app

Ejecuta cada línea solo si la anterior termina bien. pull descarga la imagen sin arrancarla. up recrea el contenedor cuando cambia su imagen o configuración y conserva los volúmenes montados. --no-deps evita arrancar los servicios dependientes: no lo uses para saltarte una actualización conjunta que exija la aplicación. No hace falta bajar todo el stack con down ni borrar sus volúmenes para actualizar un servicio.

Volver a la imagen anterior no devuelve los datos anteriores

Si la versión nueva admite retroceso sin cambios incompatibles en los datos, recupera el Compose anterior y pon en image: la referencia local que guardaste. Recrea solo el servicio:

docker compose up -d --no-deps --pull never app

Si hubo una migración de base de datos incompatible, para aquí. Sigue el procedimiento de recuperación de esa aplicación con una copia anterior coherente; arrancar el binario viejo contra la base nueva puede empeorar el problema. Tampoco es un método para deshacer cambios entre Portainer CE y BE.

Ensayo del 1 de octubre de 2026: con Compose v5.5.1, dos imágenes locales de prueba y un volumen con texto ficticio, la actualización conservó el archivo y no recreó el contenedor vecino. Después se cambió el texto a dato-posterior. Al recuperar la imagen inicial, el archivo seguía diciendo dato-posterior. Es una prueba de recreación y persistencia, no una restauración de base de datos ni una prueba de actualización de Portainer.

Para preparar la copia que falta en ese segundo caso, sigue la guía de backup y recuperación 3-2-1. Antes de retirar la copia anterior, abre el servicio nuevo y comprueba tus datos. Un contenedor en verde no basta.

Portainer CE frente a la BE (y las 3 gratis)

Para casa, Portainer CE cubre de sobra. Es gratis, abierto y no le falta nada de lo que un homelab necesita. La Business Edition añade cosas orientadas a empresa (control de acceso por roles fino, funciones de gestión de equipos, soporte comercial).

El matiz interesante: Portainer ofrece un programa llamado “3 Nodes Free” por el que puedes usar la Business Edition gratis en hasta 3 nodos (máquinas), con una clave de licencia que se renueva cada año sin coste mientras sigas en 3 nodos o menos. Si algún día tu homelab crece a varios servidores y te apetece cacharrear con las funciones de la versión de pago, es una vía legal y gratuita de probarla. Para un único mini PC, insisto, la CE va perfecta.

Alternativas: dockge, komodo o la propia terminal

Portainer no es la única opción, y ser honesto ayuda:

  • Dockge es un panel más ligero y centrado solo en stacks de Docker Compose. Si toda tu vida es compose y Portainer te parece demasiado, Dockge es minimalista y muy agradable. A cambio, no gestiona tantas cosas sueltas (imágenes, redes) con el detalle de Portainer.
  • Komodo apunta más alto: está pensado para construir y desplegar en varios servidores a la vez, con más orientación a automatización. Es más herramienta de “flota” que de “un servidor en casa”.
  • La línea de comandos. No lo olvides: docker y docker compose en la terminal siguen siendo la forma más directa y reproducible de gestionar todo. Cualquier panel es una comodidad encima, no un requisito. Si te va la terminal, no necesitas nada de esto.

La regla sencilla: empieza por Portainer CE si quieres un panel completo y visual, mira Dockge si solo usas Compose y buscas algo minimalista, y quédate en la terminal si ya te manejas y no quieres otra pieza que mantener.

Por qué encaja tan bien en un mini PC 24/7

Portainer brilla en el escenario típico del homelab: un equipo pequeño, silencioso y de bajo consumo, encendido todo el día, con un puñado de servicios encima. En ese contexto, tener el mando a distancia en el navegador es justo lo que quieres, porque rara vez te sientas delante de la máquina: la controlas desde el portátil o el móvil.

Y el propio Portainer pesa muy poco, así que no te va a pedir hardware extra. Cualquier mini PC de bajo consumo lo mueve sin enterarse: un Beelink S12 Pro con Intel N100 para el 90 % de los casos, o el mismo Beelink S12 Pro si vas a montar tu primer servidor desde cero. Para elegir por consumo y precio, tienes el comparador de mini PC con el filtro de vatios, y la cuenta de la factura en la guía de cuánto cuesta tener un servidor encendido todo el año.

¿Y qué le pones encima para gestionarlo luego con Portainer? Lo típico de un homelab que merece la pena: tu domótica con la guía de mini PC para Home Assistant, un servidor multimedia siguiendo la guía de Plex con Docker, o el almacenamiento de la casa como cuento en la comparativa de NAS caseros. Todo eso, después, se gestiona desde una sola pestaña del navegador.

// preguntas frecuentes

Preguntas frecuentes

¿Actualizar un stack guarda una copia de los datos?
No. Recrear el contenedor conserva los volúmenes montados, pero no crea una copia anterior de sus datos. Recuperar la imagen vieja tampoco revierte una migración de base de datos; necesitas el procedimiento de recuperación y una copia coherente de la aplicación.
¿Portainer es gratis?
Portainer CE (Community Edition) es gratis y de código abierto, y cubre de sobra un homelab casero. Existe además Portainer BE (Business Edition), la versión comercial con funciones para empresa, que ofrece un programa para usarla gratis en hasta 3 nodos.
¿Necesito saber Docker para usar Portainer?
Ayuda mucho entender los conceptos básicos (contenedor, imagen, volumen, red), pero Portainer es precisamente una buena forma de aprenderlos con una interfaz visual en vez de a base de comandos. No sustituye a entender lo que haces, pero suaviza la curva de entrada.
¿Es seguro dar a Portainer acceso al socket de Docker?
Portainer necesita acceso al socket /var/run/docker.sock para gestionar Docker, y quien controla ese socket controla toda la máquina. En una red doméstica es asumible, pero nunca expongas el panel directamente a internet: déjalo en tu red local o detrás de una VPN, y protégelo con una contraseña fuerte.
¿En qué puerto se abre Portainer?
Por defecto sirve la interfaz web en el puerto 9443 mediante HTTPS con un certificado autofirmado. La primera vez el navegador avisa de que el certificado no es de confianza; en tu propia red es normal, se acepta y se continúa. Hay también un puerto 8000 opcional, solo necesario para gestionar máquinas remotas con Edge Agents.
¿Portainer o Docker Compose por línea de comandos?
No es excluyente: Portainer puede desplegar y editar stacks de Docker Compose desde el navegador, usando los mismos archivos. Si te sientes cómodo en la terminal y ya versionas tus compose, Portainer aporta sobre todo comodidad visual. Si prefieres ver y tocar todo con clics, es donde más se nota.

Mi veredicto: Portainer CE es una de esas piezas que instalas en cinco minutos y acabas abriendo a diario. No es imprescindible —la terminal siempre está ahí—, pero en un mini PC casero lleno de contenedores, tener el mando a distancia en el navegador se agradece cada vez que algo se cae y lo arreglas desde el sofá.