Files
portainer/README.md

4.1 KiB

Infraestructura: Portainer

Portainer CE — Despliegue con Docker Compose

Este repositorio proporciona una forma sencilla de desplegar Portainer Community Edition (CE) usando Docker Compose en Linux, siguiendo las recomendaciones oficiales: https://docs.portainer.io/start/install-ce/server/docker/linux#docker-compose

Requisitos

  • Docker y Docker Compose instalados en el host.
  • Usuario con permisos para acceder a /var/run/docker.sock.
  • Conectividad a los puertos necesarios.

Qué incluye este stack

  • Servicio portainer con la imagen portainer/portainer-ce:lts.
  • Montaje del socket Docker: /var/run/docker.sock:/var/run/docker.sock.
  • Volumen persistente portainer_data montado en /data para conservar la configuración.
  • Puertos:
    • 9443:9443 (UI HTTPS de Portainer)
  • Red portainer_network (por defecto).

Archivo Compose

El docker-compose.yml actual contiene:

services:
	portainer:
		container_name: portainer
		image: portainer/portainer-ce
		restart: always
		volumes:
			- /var/run/docker.sock:/var/run/docker.sock
			- portainer_data:/data
		ports:
			- 9443:9443

volumes:
	portainer_data:
		name: portainer_data

networks:
	default:
		name: portainer_network

Pasos de despliegue

  1. Clonar el repositorio (si no lo tienes):
git clone https://git.ictiberia.com/groales/portainer
cd portainer
  1. Levantar Portainer con Docker Compose:
docker compose up -d
  1. Verificar que Portainer está en ejecución:
docker ps --filter name=portainer
  1. Acceder a la interfaz web:
  • URL: https://<HOST>:9443
  • Al primer acceso, Portainer te pedirá crear el usuario administrador.

Notas y buenas prácticas

  • Mantén el volumen portainer_data para persistir configuración y datos.
  • Para exponer Portainer a Internet, usa un proxy inverso (Traefik/Nginx) con TLS y reglas de acceso.
  • Limita el acceso a la UI mediante firewall/VPN.

Edge Agents (opcional)

Este stack no expone el puerto 8000 por defecto. Si necesitas gestionar agentes remotos (Edge), añade de nuevo el puerto en la sección ports:

		ports:
			- 9443:9443
			- 8000:8000

Integración con Proxy Inverso

Este repositorio incluye archivos de ejemplo para integrar Portainer con Traefik o NPM:

Con Traefik

cp docker-compose.override.traefik.yml.example docker-compose.override.yml
# Edita el dominio en docker-compose.override.yml
docker compose up -d

Con NGINX Proxy Manager

cp docker-compose.override.npm.yml.example docker-compose.override.yml
docker compose up -d
# Configura el proxy host desde la UI de NPM

Ver documentación detallada en la Wiki - Traefik.

Documentación adicional

Consulta la Wiki del proyecto para documentación detallada:

Solución de problemas

  • Puerto ocupado (9443/8000): comprueba procesos con netstat o Get-NetTCPConnection y ajusta puertos en docker-compose.yml.
  • Permisos sobre /var/run/docker.sock: ejecuta con un usuario que pertenezca al grupo docker (Linux) o valida que Docker Desktop esté activo (Windows WSL2).
  • Certificados/TLS: si accedes por https:// y hay advertencias, usa un proxy inverso con certificados válidos o configura confiables en el cliente.
  • Contenedor no arranca: revisa logs con docker logs portainer y valida que el volumen portainer_data exista.

Personalización rápida

  • Eliminar Edge Agents: borra la línea - 8000:8000 en ports:.
  • Cambiar nombre de red/volumen: ajusta name: portainer_network y name: portainer_data en las secciones networks y volumes.
  • Variables mediante .env: añade valores personalizados y referencia desde el compose si lo necesitas.
    • docs/Traefik.md — integración con proxy reverso