Portainer: gestiona Docker con interfaz web sin tocar la terminal

Portainer es una interfaz web para gestionar Docker y Kubernetes. Permite a técnicos menos familiarizados con la línea de comandos gestionar contenedores, imágenes, volúmenes y stacks desde un navegador, sin memorizar comandos Docker. También es útil para administradores que quieren visibilidad visual rápida.

Instalación

docker volume create portainer_data


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

Qué puedes hacer desde Portainer

Gestión de contenedores

Desde Containers puedes:

  • Ver todos los contenedores (activos y parados) con CPU/RAM en tiempo real
  • Iniciar, parar, reiniciar y eliminar contenedores
  • Acceder a los logs con filtros y búsqueda
  • Abrir una consola dentro del contenedor (equivalente a docker exec -it)
  • Ver las variables de entorno, volúmenes montados y puertos expuestos

Stacks (Docker Compose desde la web)

StacksAdd stack → pega tu docker-compose.yml directamente en el editor web:

version: '3.8'
services:
  web:
    image: nginx:alpine
    ports:
      - "80:80"
    volumes:
      - ./html:/usr/share/nginx/html
  
  db:
    image: postgres:16-alpine
    environment:
      POSTGRES_PASSWORD: secreto
    volumes:
      - db_data:/var/lib/postgresql/data

volumes:
  db_data:

Portainer despliega, actualiza y gestiona el stack completo desde la interfaz.

Registros de imágenes privados

RegistriesAdd registry: conecta con Docker Hub, GitHub Container Registry, GitLab Registry o un registro privado para hacer pull/push desde la interfaz.

Redes y volúmenes

Desde Networks y Volumes puedes crear, inspeccionar y eliminar redes y volúmenes sin comandos.

Gestionar múltiples hosts Docker (Edge Agents)

Portainer puede gestionar Docker en otros servidores remotos:

docker run -d \
  --name portainer_agent \
  --restart=always \
  -p 9001:9001 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /var/lib/docker/volumes:/var/lib/docker/volumes \
  portainer/agent:latest

En la UI de Portainer (servidor principal): EnvironmentsAdd environmentDocker Standalone → introduce la IP y puerto 9001 del agente.

Ahora tienes todos tus servidores Docker en un único panel de control.

Actualizaciones de contenedores con Watchtower

Para mantener los contenedores actualizados automáticamente:

docker run -d \
  --name watchtower \
  --restart=unless-stopped \
  -v /var/run/docker.sock:/var/run/docker.sock \
  containrrr/watchtower \
  --schedule "0 0 4   *" \  # todos los días a las 4:00
  --cleanup                    # eliminar imágenes viejas

O desde Portainer: despliega Watchtower como un stack más.

Portainer BE vs CE

CaracterísticaCE (gratuita)BE (de pago)
Gestión Docker
Stacks
Control de acceso básico
RBAC avanzado
GitOps (sincronizar stacks con repo)
Kubernetes avanzado LimitadoCompleto

Para home labs y pymes, CE es más que suficiente.

Acceso seguro: Nginx + SSL delante de Portainer

server {
    listen 443 ssl http2;
    server_name portainer.miempresa.local;

    ssl_certificate /etc/letsencrypt/live/portainer.miempresa.local/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/portainer.miempresa.local/privkey.pem;

    location / {
        proxy_pass https://127.0.0.1:9443;
        proxy_ssl_verify off;   # Portainer usa certificado autofirmado
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Portainer reduce la barrera de entrada para gestionar Docker: el equipo de desarrollo puede desplegar sus aplicaciones sin necesitar acceso SSH al servidor, y los administradores tienen visibilidad visual del estado de todos los contenedores. Para entornos con múltiples servidores Docker, la capacidad de gestionarlos todos desde un único panel es especialmente valiosa.

Deja una respuesta

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