Files
portainer/README.md

97 lines
3.6 KiB
Markdown

# 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:
```yaml
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):
```powershell
git clone https://git.ictiberia.com/groales/portainer
cd portainer
```
2) Levantar Portainer con Docker Compose:
```powershell
docker compose up -d
```
3) Verificar que Portainer está en ejecución:
```powershell
docker ps --filter name=portainer
```
4) 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`:
```yaml
ports:
- 9443:9443
- 8000:8000
```
## Documentación adicional
Consulta la [**Wiki del proyecto**](https://git.ictiberia.com/groales/portainer/wiki) para documentación detallada:
- [Guía inicial](https://git.ictiberia.com/groales/portainer/wiki/Home)
- [Instalación avanzada y TLS](https://git.ictiberia.com/groales/portainer/wiki/Instalacion)
- [Backup/Restore del volumen data](https://git.ictiberia.com/groales/portainer/wiki/Backup)
- [Proxy inverso y TLS con Traefik](https://git.ictiberia.com/groales/portainer/wiki/Traefik)
## Solución de problemas
- Puerto ocupado (`9443/8000`): comprueba procesos con `netstat` o `Get-NetTCPConnection` y ajusta puertos en `docker-compose.yaml`.
- 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