Docker en el homelab¶
Visión general¶
Todos los servicios del homelab se ejecutan como contenedores Docker. Esta página documenta el estándar de despliegue y operación.
Estándar de despliegue¶
Cada servicio Docker debe vivir en /opt/nombre-servicio/ con la siguiente estructura:
Archivos¶
| Archivo | Propósito |
|---|---|
compose.yml | Definición del servicio (prefijo aegis- si es automatización) |
.env | Variables de entorno (no incluir en Git) |
data/ | Volumen local de datos persistentes |
README.md | Documentación operativa del servicio |
Comandos estándar¶
# Ingresar al directorio del servicio
cd /opt/nombre-servicio
# Actualizar imagen
docker compose pull
# Iniciar servicio
docker compose up -d
# Ver estado
docker compose ps
# Ver logs
docker compose logs -f
# Limpiar imágenes antiguas
docker image prune -f
Redes Docker¶
- Servicios expuestos al exterior: red
proxy(Nginx Proxy Manager) - Servicios internos: red
internal(solo comunicación entre servicios) - Servicios Aegis: red
aegis-net
Servicios activos¶
| Servicio | Puerto | Ruta | Scheduling |
|---|---|---|---|
| Jellyfin | 8096 | /opt/jellyfin/ | compose.yml |
| Sonarr | 8989 | /opt/sonarr/ | compose.yml |
| Radarr | 7878 | /opt/radarr/ | compose.yml |
| Qbittorrent | 8080 | /opt/qbittorrent/ | compose.yml |
| Uptime Kuma | 3001 | /opt/uptime-kuma/ | compose.yml |
| Nginx Proxy Manager | 80/443 | /opt/nginx-proxy/ | compose.yml |
Buenas prácticas¶
- Usar siempre
docker compose(nuncadocker-compose). - Los contenedores Aegis usan prefijo
aegis-. - No ejecutar comandos interactivos en contenedores en producción.
- Las imágenes se actualizan semanalmente.
- Los volúmenes Docker se respaldan en PBS.
Troubleshooting¶
- Verificar que Docker esté activo:
systemctl status docker - Revisar logs del contenedor específico:
docker compose logs -f servicio - Verificar puertos ocupados:
ss -tlnp - Forzar recreación:
docker compose up -d --force-recreate