101 lines
3.8 KiB
Markdown
101 lines
3.8 KiB
Markdown
# Infraestructura: Portainer
|
|
|
|
# Portainer CE — Despliegue con Docker Compose (Linux)
|
|
|
|
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.yaml` actual contiene:
|
|
|
|
```yaml
|
|
services:
|
|
portainer:
|
|
container_name: portainer
|
|
image: portainer/portainer-ce:lts
|
|
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 (PowerShell en Windows o bash equivalente en Linux)
|
|
1) Clonar el repositorio (si no lo tienes):
|
|
```powershell
|
|
cd C:\Users\gustavo.roales.ICT-IBERIA\repos
|
|
git clone https://git.ictiberia.com/groales/portainer
|
|
cd portainer
|
|
```
|
|
|
|
2) (Opcional) Crear y ajustar `.env` si lo usas para variables adicionales.
|
|
|
|
3) Levantar Portainer con Docker Compose:
|
|
```powershell
|
|
docker compose up -d
|
|
```
|
|
|
|
4) Verificar que Portainer está en ejecución:
|
|
```powershell
|
|
docker ps --filter name=portainer
|
|
```
|
|
|
|
5) 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 |