104 lines
3.7 KiB
Markdown
104 lines
3.7 KiB
Markdown
# Infraestructura: Portainer
|
|
|
|
Este repositorio contiene el despliegue de **Portainer CE** para la gestión centralizada de contenedores Docker.
|
|
|
|
## 🧩 Componentes
|
|
|
|
|
|
## 🚀 Despliegue
|
|
|
|
1. Crear `.env` desde el ejemplo:
|
|
|
|
```bash
|
|
cp .env.example .env
|
|
```
|
|
# 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)
|
|
- `8000:8000` (opcional; para Edge Agents). Si no lo necesitas, puedes eliminar esta línea.
|
|
- 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
|
|
- 8000:8000 # Remove if you do not intend to use Edge Agents
|
|
|
|
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/infraestructura/infra-portainer
|
|
cd infra-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.
|
|
- Si no usas Edge Agents, elimina el mapeo de puerto `8000:8000`.
|
|
- 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.
|
|
|
|
## Documentación adicional
|
|
- Guía inicial: [`docs/Home.md`](docs/Home.md)
|
|
- Instalación avanzada y TLS: [`docs/Instalacion.md`](docs/Instalacion.md)
|
|
- Backup/Restore del volumen `data`: [`docs/Backup.md`](docs/Backup.md)
|
|
|
|
## 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 |