Instalación y configuración.
Docker es la tecnología base que crea y ejecuta contenedores individuales. *Docker Compose es una herramienta que simplifica la gestión de múltiples contenedores relacionados, permitiendo definirlos declarativamente en un archivo y orquestarlos juntos.
Open Media Vault 8 dispone del plugin openmediavault-compose 8.x.xx, este plugin proporciona una solución integral para gestionar contenedores Docker y sus recursos. Las características clave incluyen:
Gestión de Docker-Compose: Mantener y ejecutar archivos Docker Compose.
Copias de seguridad automatizadas: Programar copias de seguridad regulares de contenedores para garantizar la integridad de los datos.
Restauración de copias de seguridad: Restaurar copias de seguridad para minimizar el tiempo de inactividad.
Automatización de limpieza: Eliminar automáticamente imágenes, contenedores y recursos desactualizados.
Monitorización de contenedores: Acceso a estadísticas en contenedores en funcionamiento.
Seguimiento del estado de la imagen: Monitorizar los estados de las imágenes y métricas relevantes.
Gestión de redes: Crear y gestionar redes Docker.
Visualización de registros: Consulta los registros de tus contenedores. El plugin openmediavault-cterm es un requisito obligatorio de este plugin.
Sistema -> OMV-EXTRAS hacer clic en el REPO DE DOCKER y salvar. Esto activa el repositorio de Docker para poder instalar Docker y el plugin Compose.
Sistema -> Plugins seleccionar/instalar openmediavult-compose.
Servicios - Compose - Configuración - Configuración
El modelo de seguridad de Docker se basa en un principio simple: un contenedor tiene exactamente los mismos permisos que el usuario (UID/GID) con el que se ejecuta.
Información sobre la gestión de usuario y grupos para docker en particular y para OMV en general puede verse en el siguiente enlace: Gestión de usuarios y permisos en Docker y OMV
Crear el usuario appuser Gestión de usuarios - Usuarios.
No agregar
appuseral grupo de docker. Esto crea un agujero de seguridad.
Asignar permisos (1) Gestión de usuarios - Usuarios- Permisos de la carpeta:
Read/Write -> appdata
(1) Con la configuración por defecto de usuarios y carpetas compartidas no haría falta. Se hace para asegurar el acceso en el caso de que se haya realizado alguna modificación en el usuario/grupos.
Se usarán los siguientes directorios:
appdata: Defina la carpeta donde el plugin almacenará los archivos de configuración del contenedor, incluidos los archivos Docker Compose (.yaml) y archivos de entorno (.env).
data (CHANGE_TO_COMPOSE_DATA_PATH): Defina una carpeta compartida utilizada como ruta de datos global.
backup_compose
docker
Crear en el disco las carpetas anteriores con la siguiente estructura
Almacenamiento - Carpetas Compartidas
/srv/dev-disk-by-uuid-215790a8-32eb-476b-aef3-23cd149f359b/contenedores
|
|-- appdata
|
|-- data
|
|-- backup_compose
|
|-- docker
En Servicios - Compose - Configuración
Archivos compose : appdata
Datos : data
Backup : backup_compose
Docker config : docker ( 🗸 Live Restore )
El plugin Compose soporta Sustituciones automáticas directamente en el archivo de composición:
${{ uid:"USERNAME" }} → resuelve el UID de ese usuario
${{ gid:"GROUPNAME" }} → resuelve el GID de ese grupo
${{ tz }} → se resuelve la zona horaria del sistema
${{ sf:"SHARENAME" }} → se resuelve la ruta completa de una carpeta compartida
SHARENAMEdebe estar definida en Almacenamiento -> Carpetas Compartidas
---
# Date: 2025-06-01
# https://hub.docker.com/r/linuxserver/jellyfin
# https://jellyfin.org/docs/
services:
jellyfin:
image: lscr.io/linuxserver/jellyfin:latest
container_name: jellyfin
environment:
- PUID=${{ uid:"appuser" }}
- PGID=${{ gid:"users" }}
- TZ=${{ tz }}
- JELLYFIN_PublishedServerUrl=http://jellyfin.tudominio.com
volumes:
#- /var/lib/openmediavault/jellyfin/config:/config
- ${{ sf:"docker - appdata" }}/jellyfin/config:/config
- ${{ sf:"file_jellyfin" }}/tvshows:/data/tvshows
- ${{ sf:"file_jellyfin" }}/movies:/data/movies
networks:
- proxy_net
restart: unless-stopped
networks:
proxy_net:
external: true
name: proxy_net
docker ps
docker logs [name_contenedor]
docker logs [name_contenedor]
docker network ls
docker network inspect nginx-proxy-manager_default | grep -A 3 Subnet
docker network inspect proxy_net | grep -A 3 Subnet
docker network inspect bridge | grep -A 3 Subnet