GNU/Linux >> Tutoriales Linux >  >> Panels >> Docker

Cómo usar Docker en un Synology NAS

Hoy vamos a ver cómo usar Docker en un Synology NAS.

La mayor parte de la explicación se hará a través del video de arriba , pero es importante tener ciertos puntos documentados. La implementación de Docker en un Synology NAS es muy poderosa cuando la comprende, pero es un poco confusa cuando comienza por primera vez. Si bien creo tutoriales específicos que lo guiarán a través de la implementación de contenedores específicos, mi objetivo es brindarle el conocimiento necesario para implementar cualquier contenedor que desee.

1. Montaje de volumen:cómo usar Synology NAS Docker

Al crear un contenedor Docker, los datos importantes deben asignarse a una carpeta local. Esto se completa en el Volumen sección, donde una carpeta local se asigna a una carpeta contenedora. Cuando se ejecuta el contenedor, la ubicación de la carpeta del contenedor en la ruta de montaje siguiente se escribe en el archivo/carpeta ingresado en su Synology NAS. Cualquier dato que se modifique en la carpeta local de Synology NAS se escribirá en la carpeta de contenedores.

Es importante resaltar que no puede montar ninguna carpeta que desee. Cuando descarga una imagen del registro, un pequeño ícono (que se muestra a continuación) lo llevará a la documentación de ese contenedor. Puede buscar en esa documentación para ver qué carpetas se pueden montar.

Después de navegar a la documentación, tendrá que buscar en la página para ver qué volúmenes se pueden montar. Desafortunadamente, toda la documentación es diferente, por lo que tendrá que buscarla para encontrar la información del volumen. Usando Pi-Hole como ejemplo, se proporciona un archivo Docker Compose de ejemplo. Debajo de los volúmenes sección, se encuentran los dos volúmenes que se pueden montar.

Usando ./etc-pihole/:/etc/pihole/ como ejemplo, etc-pihole es la carpeta local y /etc/pihole es la carpeta del contenedor. Puede traducir esto fácilmente a un Synology NAS creando subcarpetas en la ventana acoplable. carpeta y montar esa ubicación de carpeta en la carpeta del contenedor. Usando la captura de pantalla a continuación, creé una carpeta llamada pi-hole y un nombre de subcarpeta etc-pihole . Esas carpetas están dentro de la carpeta docker y están montadas en el /etc/pihole del contenedor. carpeta. Cuando se inicia el contenedor, el contenido del /etc/pihole  del contenedor la carpeta se escribirá en etc-pihole de mi Synology NAS carpeta. Si está interesado en hacer una copia de seguridad de un contenedor, las carpetas que monta para cada contenedor contienen todos sus datos personales. Estas son las carpetas importantes de las que se debe hacer una copia de seguridad. El resto es simplemente una configuración que se puede crear en una instalación separada de NAS o Docker.

La siguiente parte es un poco complicada:puede sobrescribir un archivo específico en el contenedor creando una versión local de ese archivo y seleccionando la ruta exacta donde se encuentra ese archivo en el contenedor. Un ejemplo de eso es el resolv.conf archivo en la captura de pantalla a continuación. Cuando se ejecuta el contenedor, el archivo resolv.conf en el contenedor se reemplazará con el contenido del archivo resolv.conf en Synology NAS . Para reiterar, si desea actualizar un archivo en el contenedor, cree un archivo local en su Synology NAS y asigne ese archivo al archivo interno del contenedor.

2. Interfaz de red Macvlan y Bridge

Hay situaciones en las que un contenedor docker usará ciertos puertos (80/443, por ejemplo) y la interfaz de red del host ya usa esos puertos para otra cosa. Cuando esto ocurre, un conflicto de puertos impedirá que el contenedor funcione correctamente. En situaciones como esta, tiene dos formas principales de solucionar el problema:

  1. Cambia el puerto local para que estés usando algo diferente. Por ejemplo, si el contenedor Docker quiere usar el puerto 80, cambie el Puerto local ser algo diferente, como 8080 como se muestra a continuación. Para acceder al contenedor Docker, debe usar la dirección IP de su Synology NAS y el puerto local (http://[SYNOLOGY_NAS_IP]:8080).

2. Cree una interfaz de red macvlan y una red puente. Una interfaz de red macvlan evitará todos los conflictos de puertos, ya que especifica una dirección IP única que utilizará el contenedor que está creando. Esto significa que accederá a ese contenedor utilizando una dirección IP completamente diferente a la de su Synology NAS. De forma predeterminada, su host (Synology NAS) no podrá comunicarse con su contenedor. Por este motivo, se requiere una red puente para que el host (Synology NAS) y el contenedor puedan comunicarse. Para que quede claro, si Synology NAS necesita comunicarse con el contenedor, utilizará la dirección IP de la red puente y NO la dirección IP de macvlan.

2.1 Cómo crear interfaces de red Macvlan y Bridge

1. SSH en su Synology NAS utilizando su herramienta SSH favorita.

2. Primero, debemos determinar qué interfaces de red existen actualmente (en su Synology NAS) y anotar el nombre del adaptador. Para hacer esto, ejecute el siguiente comando y anote el nombre de la interfaz de red que tiene la dirección IP de su Synology NAS (en este ejemplo, la mía es eth0).

ifconfig

3. A continuación, debe ejecutar el siguiente comando mientras sustituye la subred correcta (la mayoría son 192.168.1.0/24 de forma predeterminada). También debe elegir una dirección IP que le gustaría usar y que no esté actualmente en uso. Usaré 192.168.1.198. NOTA :ph_network será el nombre de la red (puede sustituirlo como desee).

sudo docker network create -d macvlan -o parent=eth0 --subnet=192.168.1.0/24 --gateway=192.168.1.1 --ip-range=192.168.1.198/32 ph_network

Nuestra red ya está creada. Luego podemos salir de nuestra sesión SSH y deshabilitarla en DSM (si no la usará). Si lo está deshabilitando y creó una regla de firewall para él, también debe desactivar la regla de firewall.

4. A continuación, debemos crear una red puente. Esto es lo que permitirá que nuestro host (NAS) se comunique con nuestro contenedor. Abrir Docker y navegue hasta la Red sección. Seleccione Agregar e ingrese una subred que no esté actualmente en uso. La dirección IP del puente que estoy creando será 192.168.10.2. NOTA: ph_bridge será el nombre de la red; puede sustituirlo por el nombre que desee.

7. Nuestras nuevas redes ya están creadas. Luego podemos salir de nuestra sesión SSH y deshabilitarla en DSM (si no la usará). Si lo está deshabilitando y creó una regla de firewall para él, también debe desactivar la regla de firewall.

8. Cuando esté creando su contenedor, elimine la red puente y agregue las dos redes (ph_network y ph_bridge, pero la suya puede tener un nombre diferente) al contenedor.

¡El contenedor ahora usará las redes correctas! ¡Evitará cualquier conflicto de puerto que hubiera ocurrido, tendrá una dirección IP única para el contenedor y podrá comunicarse entre el host (Synology NAS) y el contenedor usando la red puente!

3. Variables de entorno

De forma predeterminada, muchos contenedores de Docker tienen variables de entorno que puede modificar para cambiar la configuración del contenedor. No hay variables de entorno estándar en todos los contenedores y, aunque algunos comparten nombres de variables, siempre se sugiere ver la documentación y determinar qué variables de entorno le gustaría usar. El contenedor vendrá estándar con ciertas variables, pero tiene la opción de cambiarlas o agregar otras nuevas antes de que se cree el contenedor.

Este es un ejemplo de los detalles de la variable de entorno Pi-Hole enumerados en la documentación.

En el contenedor Docker de su Synology NAS, el Entorno La sección es donde puede agregar, eliminar o cambiar las variables de entorno.

4. Cómo acceder a un contenedor a través de la interfaz de línea de comandos (CLI)

Hay ciertas situaciones en las que necesitará o querrá acceder a los archivos del contenedor. Ya sea que necesite modificar algo (montando un volumen de archivo) o ver la estructura, hay una manera de hacerlo en un Synology NAS, pero debe hacerse a través de SSH.

1. ¡Empieza tu contenedor! ¡Si el contenedor no se inicia, no podrá acceder al contenedor!

2. Asegúrese de que puede conectarse mediante SSH a su Synology NAS. Abra Panel de control , seleccione Terminal y SNMP y habilitar SSH servicio. Si está utilizando el Firewall de Synology, asegúrese de permitir el tráfico del puerto 22 . Creé un video sobre cómo usar SSH en su Synology NAS si tiene algún problema.

3. Ejecute el siguiente comando para enumerar los contenedores en ejecución. Copie el ID del contenedor.

sudo docker container ls

4. Ejecute el siguiente comando y sustituya el ID del contenedor encontrado arriba.

sudo docker exec -it CONTAINER_ID bash

5. ¡Ahora estará conectado como usuario raíz para el contenedor!

5. Docker Compose:Synology NAS

Puede ser una sorpresa para algunos, pero puede usar Docker Compose tan pronto como Docker esté instalado en un Synology NAS. Para cualquiera que no lo sepa, Docker Compose le permite crear contenedores a partir de un archivo de configuración YAML con un solo comando. Todo se ejecuta a través de la interfaz de línea de comandos (CLI) y algunos usuarios lo encuentran más fácil. Si va a usar esto, es posible que desee actualizar Docker Compose, ya que es una versión un poco desactualizada.

Algunos beneficios de Docker Compose en un Synology NAS:

  • Todo se administra a través de la interfaz de línea de comandos (CLI). Si se siente cómodo con la CLI, lo más probable es que le resulte mucho más fácil que configurar contenedores manualmente en la GUI de Synology.
  • Docker Compose es independiente del sistema, lo que significa que el archivo de configuración y las carpetas de datos se pueden transferir a cualquier otro sistema que ejecute Docker Compose y funcionará como se espera. Esta es una gran diferencia con respecto a la GUI de Docker de Synology, ya que puede hacer una copia de seguridad de los datos importantes del contenedor, pero no puede transferirlos fácilmente a un sistema operativo diferente.

Algunas desventajas de Docker Compose en un Synology NAS:

  • Todo se hace a través de la interfaz de línea de comandos (CLI). Si no se siente cómodo con la CLI, probablemente le resulte más fácil administrar todo en la GUI.
  • Dado que el archivo Docker Compose contiene toda la configuración, debe asegurarse de que este archivo esté configurado perfectamente o eliminará/volverá a crear los contenedores con regularidad para probar y asegurarse de que todo funcione como se espera.

5.1 Cómo crear un contenedor usando Docker Compose

1. Mueva docker-compose.yaml archivo que creó en la carpeta del contenedor que creará.

2. Asegúrese de que puede conectarse mediante SSH a su Synology NAS. Abra Panel de control , seleccione Terminal y SNMP y habilitar SSH servicio. Si está utilizando el Firewall de Synology, asegúrese de permitir el tráfico del puerto 22 . Creé un video sobre cómo usar SSH en su Synology NAS si tiene algún problema.

3. Navega a la ventana acoplable  ubicación de la carpeta en su Synology NAS y la subcarpeta del contenedor que creará. Para la mayoría de las personas, la carpeta se almacenará en el volumen 1, pero si usa varios volúmenes, podría ser algo diferente.

cd /volume1/docker/[conatiner_folder]

4. Después de confirmar que docker-compose.yaml El archivo se encuentra en la carpeta actual, ejecute el siguiente comando para crear el contenedor. ¡El contenedor comenzará ahora!

sudo docker-compose up --detach

6. Conclusión:cómo usar Docker en un Synology NAS

Hay un montón de diferentes contenedores Docker que puede crear en un Synology NAS. Espero que el video proporcionado explique todo de una manera fácil de entender, pero es importante resaltar cómo funciona la GUI de Docker para que pueda instalar cualquier contenedor que desee. El proceso será el mismo para todos los contenedores y esperamos que le haya mostrado cómo usar Docker en un Synology NAS.

Como siempre, si tienes alguna pregunta, ¡déjala en los comentarios!


Docker
  1. ¿Cómo ejecutar un programa dentro de un contenedor Docker?

  2. Cómo instalar Docker en Raspberry Pi

  3. Docker para Mac:la guía de instalación completa

  4. Cómo ejecutar un comando en un contenedor Docker en ejecución

  5. Cómo instalar Docker usando Ansible [Debian/Ubuntu]

Cómo instalar PHP 7.4, 7.3, 7.2 en el servidor CentOS 7 y RHEL 7

Cómo instalar GIMP en Ubuntu 18.04/20.04

Cómo actualizar Ubuntu 21.04 a Ubuntu 21.10

Grep Regex:una guía completa

Hoja de referencia de comandos de Git

Cómo instalar Laravel 5.6 PHP Framework con Nginx en Ubuntu 18.04