Portainer: Interfaz gráfica para Docker, Kubernetes y más

Publicado por


portainer
Gestión de contenedores

Portainer: Interfaz gráfica para Docker, Kubernetes y más

Portainer Community Edition es una UI ligera y gratuita para gestionar entornos de contenedores. Diseñada para homelabs, aprendizaje y proyectos personales, no para producción.

Vídeo tutorial en YouTube

Mira el vídeo completo sobre cómo instalar y usar Portainer: Interfaz gráfica para Docker, Kubernetes y más en el canal GENBYTE:

¿Qué es Portainer: Interfaz gráfica para Docker, Kubernetes y más?

Portainer Community Edition (CE) es una interfaz de gestión de contenedores de código abierto que simplifica la administración de Docker, Docker Swarm, Podman, Kubernetes y Azure Container Instances (ACI). El proyecto nace con el objetivo de eliminar la barrera de la línea de comandos y ofrecer una experiencia visual accesible para operadores de homelab, estudiantes, aficionados y cualquiera que experimente con contenedores en su propio hardware.

La edición comunitaria se distribuye sin coste, sin garantía, sin SLA y sin compromiso de hoja de ruta. No está pensada para entornos de negocio, producción ni donde la disponibilidad, la postura de seguridad o la integridad de los datos sean críticos. Para esos casos existe Portainer Business Edition, que añade RBAC, GitOps, gestión edge, auditoría, SSO y soporte comercial.

El repositorio principal se encuentra en GitHub bajo la organización portainer/portainer, licenciado bajo Zlib. La versión actual del paquete frontend es 2.45.0 y requiere Node.js 22.22.1 para desarrollo. La documentación oficial y la guía de instalación residen en docs.portainer.io.

Portainer CE está orientado a homelabs y aprendizaje; no ofrece soporte oficial, SLA ni garantías para producción.

Características principales

Gestión multiplataforma

Compatible con Docker, Docker Swarm, Podman, Kubernetes y Azure Container Instances desde una única interfaz.

Edición comunitaria gratuita

Disponible sin coste para uso personal, educativo y experimental. Código abierto bajo licencia Zlib.

Interfaz web ligera

Frontend construido con TypeScript, React, AngularJS (híbrido), TailwindCSS y Webpack, servido como contenedor único.

Separación clara de ediciones

Portainer Business Edition añade RBAC, GitOps, edge management, auditoría, SSO y soporte comercial sobre la misma base open source.

Documentación centralizada

Guías de instalación, configuración y uso en docs.portainer.io, con enlaces directos desde el README del repositorio.

Comunidad y contribución

Canal de Slack comunitario, issues en GitHub y guía de contribución (CONTRIBUTING.md) para desarrollo local y pull requests.

Requisitos del sistema

  • Motor de contenedores compatible: Docker Engine, Docker Swarm, Podman, Kubernetes o ACI
  • Acceso al socket del motor de contenedores (para Docker: /var/run/docker.sock)
  • Puerto 9000 (HTTP) y 9443 (HTTPS) disponibles en el host
  • Para desarrollo local: Node.js ^22.22.1 y pnpm 10.26.2

Instalación con Docker Compose

Despliegue rápido con Docker (documentación oficial)

La guía oficial de instalación de Portainer CE se encuentra en https://docs.portainer.io/start/install-ce. El repositorio no incluye un archivo docker-compose.yml en la raíz; la instalación estándar se realiza mediante comando docker run o siguiendo la documentación según el entorno objetivo (Docker standalone, Swarm, Kubernetes, Podman, ACI).

# Ejemplo genérico para Docker standalone (consultar docs.portainer.io para el comando exacto y versión actual)
docker run -d \
-p 9000:9000 -p 9443:9443 \
–name portainer \
–restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest

Compilación desde código fuente (desarrollo)

El repositorio incluye scripts de empaquetado basados en Webpack y pnpm. Requiere Node.js ^22.22.1. Los comandos principales están definidos en package.json.

# Instalar dependencias
pnpm install

# Desarrollo con recarga en caliente
pnpm run dev

# Compilación de producción
pnpm run build

# Lint y formateo
pnpm run lint
pnpm run format

# Tests
pnpm run test

Acceder al proyecto

Interfaz web

Tras el despliegue, la UI está disponible en http://<host>:9000 (HTTP) y https://<host>:9443 (HTTPS). El primer acceso requiere crear un usuario administrador y seleccionar el entorno a gestionar (local, remoto, Kubernetes, etc.).

API y CLI

Portainer expone una API REST documentada en la propia interfaz (sección API). No se documenta en la investigación un CLI independiente para la edición comunitaria.

Casos de uso

  • Gestión visual de contenedores, imágenes, redes y volúmenes en homelabs
  • Aprendizaje de conceptos de Docker y Kubernetes sin depender exclusivamente de la CLI
  • Despliegue y supervisión de stacks Docker Compose desde la interfaz
  • Administración de clústeres Docker Swarm y namespaces Kubernetes en entornos de prueba
  • Experimentación con Podman y Azure Container Instances mediante una UI unificada

Configuración avanzada

Configuración de entornos remotos

Portainer permite agregar entornos remotos (Edge Agents, Docker daemons remotos, clústeres Kubernetes) mediante la UI. La configuración de certificados TLS, tokens de agente y variables de entorno específicas depende del tipo de entorno y se documenta en docs.portainer.io.

Persistencia de datos

Los datos de Portainer (base de datos interna, configuración, certificados) se almacenan en el volumen montado en /data dentro del contenedor. En el ejemplo de docker run se usa un volumen nombrado 'portainer_data'.

-v portainer_data:/data

Actualización de versión

Para actualizar Portainer CE, detener y eliminar el contenedor actual, obtener la imagen más reciente y volver a crear el contenedor con los mismos volúmenes y puertos. No hay mecanismo de actualización automática documentado en la investigación.

docker stop portainer
docker rm portainer
docker pull portainer/portainer-ce:latest
# volver a ejecutar el docker run original con los mismos volúmenes

Gestión y mantenimiento

Copias de seguridad

La persistencia reside en el volumen /data. Realizar copias de seguridad de dicho volumen (por ejemplo, con docker run –volumes-from portainer -v $(pwd):/backup alpine tar czf /backup/portainer-backup.tar.gz /data) permite restaurar la configuración y la base de datos interna.

docker run –rm –volumes-from portainer -v $(pwd):/backup alpine tar czf /backup/portainer-backup.tar.gz /data

Limpieza de recursos

Portainer incluye funciones en la UI para eliminar contenedores, imágenes, redes y volúmenes no utilizados. También permite ejecutar comandos de limpieza del motor de contenedores subyacente (docker system prune, etc.) desde la interfaz.

Logs y solución de problemas

Los logs del contenedor Portainer están disponibles con 'docker logs portainer'. Para depuración avanzada, la documentación sugiere revisar los logs del agente Edge o del motor de contenedores gestionado.

docker logs portainer
# seguir logs en tiempo real
docker logs -f portainer

Stack técnico

  • TypeScript
  • React 17
  • AngularJS 1.8 (híbrido con @uirouter/react-hybrid)
  • TailwindCSS 3.3
  • Webpack 5
  • pnpm 10
  • Node.js 22 (desarrollo)
  • Go (backend, inferido por go.mod/go.sum en la raíz)
  • Docker / Docker Compose (despliegue)
  • Kubernetes (soporte nativo)
  • Podman (compatibilidad)
  • Azure Container Instances (compatibilidad)

Referencias oficiales

Apoya el canal GENBYTE

Sígueme en mis redes sociales

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *