Tienda Wifi

Tienda Wifi
CiudadWireless es la tienda Wifi recomendada por elhacker.NET

Entradas Mensuales

Síguenos en:

Canal Oficial Telegram de elhacker.NET Grupo Facebook elhacker.NET Twitter elhacker.NET Canal Youtube elhacker.NET Comunidad Steam: Grupo elhacker.NET Mastodon

Entradas populares

PostHeaderIcon instalación y configuración de Docker en NAS QNAP con Container Station


Docker, la solución de virtualización ligera junto a Container Station de QNAP  para su sistema operativo QTS.



Con Docker podremos virtualizar aplicaciones y utilizarlas de forma aislada y única sin necesidad de arrancar máquinas virtuales, para darle aún más utilidad y posibilidades a nuestro NAS en entornos de productividad o domésticos. Pondremos algunos ejemplos de instalación, y usaremos una funcionalidad extra como Portainer que añade más versatilidad y opciones de configuración.

Virtualizar (VM) vs Docker (Container)

Docker es una solución de virtualización ligera de aplicaciones y sistemas operativos basados en Linux. A diferencia de los mecanismos tan conocidos como VMWare, VirtualBox o Microsoft Hyper-V, esta utilidad ofrece un enfoque distinto, denominándose virtualización ligera al poder crear contenedores individuales únicos para aplicaciones sin tener que usar una máquina virtual propiamente dicha.

Docker será el encargado de proporcionarnos las herramientas y medios para crear dichos contenedores, cada uno de ellos único y albergando una aplicación que funcionará tal y como lo haría instalada en un sistema operativo. En la virtualización ligera se utilizan los recursos disponibles en la propia máquina, y todos los contenedores correrán sobre una misma instancia en el sistema operativo anfitrión, en este caso QTS.



¿Cuáles son entonces las ventajas? Pues principalmente las siguientes:

  • No necesitaremos arrancar y mantener múltiples máquinas virtuales, necesitando menos recursos y simplificando la administración.
  • Al ser una imagen única, las aplicaciones estarán aisladas para poder migrarlas a cualquier plataforma compatible.
  • Poder ejecutar múltiples contenedores aislados al mismo tiempo en QTS bajo una misma interfaz de administración centralizada como es el caso de Container Station o Portainer.
  • Implementación rápida y sencilla, a través de interfaz gráfica, desde red o remota mediante SSH.
  • Posibilidad de reutilizar componentes, hacer copias de seguridad de cada imagen o incluso duplicarlas.
  • Completo ecosistema de herramientas en ampliación para aumentar las posibilidades de Docker
  • Posibilidad de colocarlas tras redes virtuales, adaptadores de red virtuales, u otros contenedores con firewall para mejorar la seguridad.
  • Administración flexible utilizando interfaz gráfica o terminal en línea de comandos.
  • Posibilidad de configurar permisos de usuario para acceder a carpetas compartidas del NAS y los datos de otros contenedores.

Container Station



Container Station será la aplicación desde la cual gestionar nuestros contenedores mediante interfaz gráfica. También integra soporte para LXC/LXD al menos hasta las versiones inferiores a la 3.0, un sistema de contenedores esta vez para albergar operativos basados en Linux. No es una solución tan potente como Portainer, otro gestor de contenedores que veremos aquí. Tampoco se parece mucho a VMware o similares, así que está pensado para sistemas ligeros donde poder correr múltiples aplicaciones virtualizadas e interactuar a través de red.



Tutorial de instalación de Container Station y Docker en NAS QNAP

Una vez sabemos qué podremos hacer con Docker, es el momento de explicar los pasos a seguir para instalar y configurar la solución de virtualización en nuestro NAS QNAP. Para ello utilizaremos el QNAP TVS-672X un NAS de alta gama con procesador Intel Core i3 8100T, 8 GB de memoria RAM y 6 bahías SATA + 2 ranuras M.2 NVMe.

Este NAS está bastante enfocado en este tipo de tareas de virtualización ligera al tener compatibilidad con QTS y QuTS hero y su sistema ZFS, así como un gran espacio y potencia para correr servidores y aplicaciones simultáneamente a través de la red. Además, cuenta con puerto HDMI, transcodificación en tiempo real, triple interfaz de red con enlace a 10 Gbps y puertos USB de 10 Gbps.

El primer requisito necesario que debemos cumplir para instalar Docker es tener ya hecho un espacio de almacenamiento y un volumen de almacenamiento. Este paso siempre es obligatorio para trabajar con el NAS, así que nos iremos al centro de almacenamiento e instantáneas, y pulsaremos sobre “Nuevo volumen de almacenamiento”. Seguiremos los pasos habituales y explicados para crear dicho volumen y así poder trabajar con carpetas y datos

Otro paso opcional será el de activar el servicio SSH en el NAS para poder conectarnos al dispositivo remotamente de forma segura. Ya decimos que no es algo necesario, salvo que queramos utilizar la herramienta Portainer a la que también daremos un repaso en este tutorial.

Para activar SSH nos iremos al Panel de control > Servicio de red y de archivos > Telnet / SSH. Activaremos la opción Permitir conexión SSD, asignándole un puerto o manteniendo el de por efecto.

Instalar Docker

Llega el momento de instalar Docker, solución que vendrá integrada en la aplicación Container Station disponible en el App Center de QNAP dentro de QTS, o bien en la página oficial.

Cuando abrimos la aplicación por primera vez debemos configurar el directorio donde se crearán los contenedores virtuales. Nosotros mantendremos la ruta por defecto /Container, que se situará en el directorio raíz de nuevo volumen de almacenamiento.

La interfaz la iremos viendo poco a poco durante el tutorial, y principalmente el apartado que nos interesa será el de creación de contenedores. La información se presenta mediante una lista de aplicaciones/sistemas dividida en distintas secciones en función en ámbito de operación, por ejemplo; IoT, AI, Local, etc.

En realidad, lo importante es que arriba tenemos un buscador en el cual escribiremos la aplicación que deseamos virtualizar, y automáticamente buscará en su inmensa biblioteca para ver si hay coincidencias. Hay una infinidad de aplicaciones disponibles, entre ellas servidores webs como WordPress, bases de datos como MongoDB, CentOS, etc. Por ahora tenemos un apartado dedicado a imágenes LXD, aunque a partir de la versión 3.0 ya no estará disponible.

El primer ejemplo que vamos a poner es la instalación de un Docker LibreOffice, el cual es básicamente la suite de aplicaciones de Office y Firefox contenidas en un sistema Ubuntu Desktop. Dispondremos de una descripción indicándonos que admite VNC (Virtual Network Computing) y control directo local si conectamos un monitor al NAS.

El apartado de Preferences lo utilizaremos para configurar las opciones generales de Container Station, por ejemplo, las relativas a interfaces de red virtuales para acceso a los contenedores, registro o repositorio. Incluso podremos descargarnos un certificado para añadir seguridad en el acceso por red a los contenedores, utilizando myQNAPcloud o cualquier otro que tengamos.

Crear contenedor Docker en NAS QNAP

Así que pulsaremos sobre Install, lo que abrirá un pequeño asistente donde se nos pedirá el nombre de la instancia, configuración de recursos de hardware y opciones adicionales como la configuración de red para su control remoto. En realidad, lo podremos dejar todo por defecto, y automáticamente se le asignará un puerto TCP para el acceso.

En la esquina superior derecha podremos ver el proceso de descarga e instalación del contenedor cual aplicación se instala en un sistema.

Una vez instalado, se habrá creado un contenedor asociado a la instancia, la cual se mostrará en el apartado de Overview con el consumo de recursos en tiempo real. El cubo en color verde significa que la aplicación está corriendo, y desde los botones en su extremo podremos interactuar con ella.

Como hemos enunciado arriba, Docker admite importación y exportación de contenedores para duplicar o mover las instancias fácilmente. La sección de Logs nos muestra todos los acontecimientos producidos en el contenedor, accesos, instalación o problemas.

En el apartado de recursos, sección Images encontramos las imágenes que Docker ha descargado para crear los contenedores. De esta forma podremos crear nuevos elementos sin necesidad de volver a descargarla, exportarla o ponerla en el registro.

El apartado más interesante será el de Container, donde accederemos nuevamente a las opciones de configuración avanzada del contenedor. Por lo demás, cada instancia dispondrá de un terminal propio con el cual trabajar a nivel avanzado en sus opciones internas, siendo esto interesante para instancias como WordPress, Joomla, Ubuntu o cualquier otra que necesite intervención de administradores.

El terminal siempre ha sido un componente básico en aplicaciones open source y Linux. La forma de acceso será tocar en la opción Terminal, con la consiguiente creación de una nueva ventana en el navegador para acceder a dicho terminal. Un ejemplo podría ser añadir un usuario y contraseña a una instancia de Ubuntu virtual.


Para utilizar el contenedor Docker solo debemos pulsar en el enlace de este mismo apartado, y si ya lo conocemos, colocaremos la IP del NAS con el puerto asociado al contenedor para acceder a él.

En caso de que tengamos un dominio para el acceso local o remoto a través de myQNAPcloud y alguna otra DDNS, podremos utilizarlo de la misma forma en la que lo hacemos para entrar al NAS. Siempre activando en el router los puertos correspondientes para el acceso. Con las opciones antes vistas, podremos utilizar certificados para conexiones seguras y HTTPS.


El procedimiento se repetirá en todos los contenedores que pretendamos crear, por ejemplo, podemos crear un contenedor para un servidor web WordPress y así montar nuestro propio blog.

Nuevamente iríamos al apartado de Create, buscaríamos WordPress y lo instalaríamos. Este bloque ya vendrá asociado a otros sub-contenedores si son necesarios, como la base de datos mariadb sobre la que trabaja el servidor.


Instalar contenedores ownCloud con Docker mediante comandos

El procedimiento para crear contenedores a través de comandos es casi el mismo que hemos llevado a cabo con Portainer anteriormente, pues en definitiva también era otro contenedor.

Pongamos el ejemplo con un servicio de almacenamiento en la nube propio como ownCloud; y el comando que utilizaremos será el siguiente:


docker run -d -p 4400:8080 -p 4401:8081 \
--network=docnet --restart always --name="servidor-owncloud" \
-v /share/DockerContainers/owncloud:/mnt/data \
-e OWNCLOUD_VERSION=latest \
-e OWNCLOUD_DOMAIN=owncloud.profesionalreview.net \
-e OWNCLOUD_ADMIN_USERNAME=prreview \
-e OWNCLOUD_ADMIN_PASSWORD=prreview_pass \
-e OWNCLOUD_FILESYSTEM_CACHE_READONLY=false \
-e HTTP_PORT=4400 \
-e HTTPS_PORT=4401 \
owncloud/server:latest


Vemos que hasta la asignación del parámetro -v, el comando sigue la misma estructura con la asignación de puertos, en este caso uno para el acceso HTTP y otro para el HTTPS. Y a partir de ahí necesitamos conocer el directorio de correspondencia entre los ficheros del NAS y el de los ficheros del contenedor, que cambiará en cada aplicación. Si no conocemos esta información, podremos probar con el comando básico docker:

run -d -p 4400:8080 owncloud:latest 

    Para saber parámetros y variables del entorno a aplicar en el comando, visitaremos hub.docker.com, donde encontraremos todos los contenedores y una completa descripción de ellos. Incluso está ya definido el comando básico para instalar y ejecutar el contenedor. Si no las conocemos, usaremos el comando básico y a posteriori configuraremos sus parámetros

¿Cómo sabemos esto? consultando algún tutorial o indagando en la descripción de la aplicación en cuestión. Un magnífico lugar para conocer gran parte o todos estos parámetros será hub.docker.com, una base de datos donde se encuentran todos los contenedores compatibles con el servicio. 

Los parámetros -e serán variables de entorno, así que tendrán carácter opcional como -v, aunque si las conocemos, ya habremos hecho una gran parte de la configuración del contenedor. Estas variables suelen estar explicadas en la descripción del contenedor en la página hub.docker, así que leed con atención antes de escribir el comando.   

Fuentes:
https://www.profesionalreview.com/2022/02/28/docker-qnap/


0 comentarios :

Publicar un comentario

Los comentarios pueden ser revisados en cualquier momento por los moderadores.

Serán publicados aquellos que cumplan las siguientes condiciones:
- Comentario acorde al contenido del post.
- Prohibido mensajes de tipo SPAM.
- Evite incluir links innecesarios en su comentario.
- Contenidos ofensivos, amenazas e insultos no serán permitidos.

Debe saber que los comentarios de los lectores no reflejan necesariamente la opinión del STAFF.