Portainer es una interfaz web gratuita para gestionar Docker y Kubernetes sin tocar la terminal. Perfecta para equipos mixtos, ambientes de laboratorio o cuando necesitas delegar administración sin dar acceso SSH.
¿Qué es Portainer?
Portainer es una herramienta de gestión de contenedores de código abierto (con edición Community gratuita y Business de pago). Provee una interfaz web para gestionar contenedores, imágenes, redes, volúmenes, stacks y más — localmente o en servidores remotos.
Soporta Docker (standalone), Docker Swarm, Kubernetes, Azure ACI y Edge Agents para gestión remota.
Instalación con Docker
# Crear volumen persistente para la configuración de Portainer
docker volume create portainer_data
# Correr Portainer CE (Community Edition)
docker run -d \
--name portainer \
--restart=always \
-p 8000:8000 \
-p 9443:9443 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest
# Acceder en: https://localhost:9443
# La primera vez crea el usuario admin
O con Docker Compose
services:
portainer:
image: portainer/portainer-ce:latest
container_name: portainer
restart: always
ports:
- "9443:9443"
- "8000:8000"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer_data:/data
volumes:
portainer_data:
Qué puedes hacer desde Portainer
| Sección | Funcionalidad |
|---|---|
| Containers | Ver, iniciar, detener, reiniciar, eliminar contenedores. Consola integrada. Ver logs en tiempo real. |
| Images | Pull, tag, eliminar imágenes. Ver capas y tamaño. |
| Stacks | Deploy de docker-compose.yml directamente desde la interfaz o desde un repositorio Git. |
| Networks | Crear, eliminar redes. Ver qué contenedores están conectados. |
| Volumes | Gestionar volúmenes persistentes. Explorar contenido. |
| Users & Teams | Crear usuarios con acceso limitado a ciertos ambientes (solo en Business). |
Stacks: docker-compose desde la interfaz
Una de las funciones más útiles es deployar Stacks — archivos docker-compose.yml — directamente desde el editor web o conectando un repositorio Git. Portainer hace pull automático cuando el repo cambia (auto-update).
# Ejemplo de stack que puedes pegar en Portainer
services:
web:
image: nginx:alpine
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html:ro
db:
image: mariadb:11
environment:
MARIADB_ROOT_PASSWORD: secret
MARIADB_DATABASE: myapp
volumes:
- db_data:/var/lib/mysql
volumes:
db_data:
Actualizar Portainer
# Detener y eliminar el contenedor actual (el volumen con datos se conserva)
docker stop portainer
docker rm portainer
# Descargar la nueva imagen
docker pull portainer/portainer-ce:latest
# Volver a correrlo (mismo comando de instalación)
docker run -d \
--name portainer \
--restart=always \
-p 8000:8000 \
-p 9443:9443 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest
"Portainer no reemplaza saber Docker — lo complementa. Úsalo para gestionar, no para evitar aprender cómo funciona por debajo."