[Docker] Anotaciones iniciales

NAS Synology

Descarga de imágenes de Docker

Puede descargar imágenes de Docker desde la pestaña Registro de la aplicación Docker. De forma predeterminada, se muestran las imágenes de Docker disponibles en el registro de Docker Hub. Puede agregar otros registros de Docker y descargar imágenes de Docker desde allí también.

Para descargar una imagen de Docker desde el registro de Docker Hub, escriba su palabra clave de búsqueda ( httpd , digamos) y haga clic en Buscar.

Se deben enumerar las imágenes de Docker que coincidieron con la palabra clave de búsqueda. Si le gusta una imagen de Docker y le gustaría saber más sobre ella, haga clic en su icono adjunto para visitar la página web oficial de la imagen de Docker.

Si le gusta una imagen de Docker y desea descargarla, selecciónela y haga clic en Descargar.

Seleccione la etiqueta (tag) de la imagen de Docker seleccionada en el menú desplegable que desea descargar y haga clic en Seleccionar.

Navegue a la sección Imagen para ver el progreso de la descarga. Siempre que se descargue la imagen de Docker, el icono de Disco se animará. Una vez que se completa la descarga, la animación del icono del disco debería detenerse.

Gestión de imágenes

Puede administrar las imágenes de Docker descargadas desde la sección Imagen de la aplicación Docker.

Exportar

Puede exportar una imagen de Docker desde la aplicación Docker a sus recursos compartidos de Synology NAS. Para exportar una imagen de Docker seleccionela y haga clic en Exportar.

Seleccione una carpeta ( docker-images / , digamos) de uno de sus recursos compartidos de Synology NAS ( share2 , digamos) donde le gustaría exportar la imagen de Docker y haga clic en Seleccionar.

Una vez que se exporta la imagen de Docker, debería encontrar un nuevo archivo de almacenamiento (p.e. php.syno.tar) en la carpeta que ha exportado.

Importar

Si quiere, pruebe a eliminar la imagen e impórtela de nuevo. Para eliminar una imagen de Docker, seleccione la imagen de Docker que desea eliminar y haga clic en Eliminar.

Para importar una imagen de Docker desde el archivo de imagen de Docker exportado, haga clic en Agregar → Agregar desde archivo y seleccione el archivo en el sitio que lo había exportado previamente.

Gestión de registros

De forma predeterminada, el Docker Hub del registro oficial de Docker se usa en la aplicación Docker. Por lo tanto, puede buscar y descargar todas las imágenes de Docker disponibles en Docker Hub. Eso es más que suficiente para la mayoría de las personas. Pero, si necesita agregar registros de Docker de terceros o sus propios registros de Docker, también puede hacerlo.

Para administrar los registros de Docker, haga clic en Configuración en la sección Registro. De forma predeterminada, tendrá los siguientes registros de Docker. El registro de Docker Hub y el registro de Aliyun Hub.

Solo se puede seleccionar uno de cada vez. También se pueden añadir nuevos registros.

Creación de contenedores

Para crear un contenedor Docker, navegue hasta la sección Imagen de la aplicación Docker . Luego, seleccione la imagen de Docker que desea usar para crear el contenedor y haga clic en Iniciar.

Escriba un nombre para el contenedor en la sección Nombre del contenedor.

Si desea ejecutar el contenedor como root (con privilegios de superusuario), marque la casilla Ejecutar contenedor usando privilegios altos.

También puede limitar el uso de CPU y memoria del contenedor. Para limitar los recursos, marque la casilla de verificación Habilitar limitación de recursos y configure la Prioridad de la CPU y el Límite de memoria según lo necesite.

Para configurar algunas configuraciones avanzadas para el contenedor, haga clic en Configuración avanzada.

Si desea iniciar el contenedor automáticamente cuando se inicie su Synology NAS, marque la casilla de verificación Habilitar reinicio automático.

Para crear un acceso directo de este contenedor en el escritorio de Synology Web GUI, marque la casilla de verificación Crear acceso directo en el escritorio y configúrelo según sea necesario.

Para agregar volúmenes al contenedor, haga clic en la pestaña Volumen de la ventana Configuración avanzada. Si visita la página de Docker Hub de la imagen de Docker que está usando, debe conocer los volúmenes que necesita crear para su contenedor. Por ejemplo, estoy usando la imagen httpd Docker para crear un contenedor. En la página Docker Hub de la imagen httpd Docker, puede ver que necesito crear un volumen para el contenedor que se vincule a la carpeta / usr / local / apache2 / htdocs del contenedor.

Para agregar un nuevo volumen al contenedor, haga clic en Agregar carpeta. Se le pedirá que seleccione una carpeta que desee vincular a su contenedor. Cuando instale la aplicación Docker en su Synology NAS, se creará una nueva ventana acoplable para compartir en el volumen donde instaló la aplicación Docker. Mi consejo sería mantener sus volúmenes y otros archivos relacionados con su contenedor en su carpeta separada en el recurso compartido de la ventana acoplable. Cree una nueva carpeta en el recurso compartido de la ventana acoplable , seleccione el recurso compartido de la ventana acoplable y haga clic en Crear carpeta. Escriba el nombre de su contenedor ( http-server-1 en mi caso) y haga clic en Aceptar .Para crear una nueva carpeta dentro de la carpeta http-server-1 / , selecciónela y haga clic en Crear carpeta . Escriba un nombre de carpeta y haga clic en Aceptar . El nombre de la carpeta debe parecerse a la ruta donde desea montar la carpeta en su contenedor. En mi caso, es htdocs ya que quiero montarlo en el directorio / usr / local / apache2 / htdocs del contenedor. Una vez que se crea la carpeta, selecciónela y haga clic en Seleccionar. Ahora, debe escribir la ruta donde desea montar la carpeta que ha seleccionado. En este caso, es el directorio / usr / local / apache2 / htdocs . Simplemente escriba la ruta de montaje y listo.

Instalación de Portainer

Actualización del sistema:

# apt update
# apt upgrade

Instalación de Docker:

# curl -fsSL https://get.docker.com -o get-docker.sh
# sh get-docker.sh
# exit

Permitir al usuario ejecutar cualquier contenedor Docker:

$ sudo usermod -aG docker $USER
$ exit
$ logout

Nos hemos salido de la sesión para que al iniciarla de nuevo tengamos actualizados los permisos.

Comprobamos:

$ docker ps

Instalación de Docker Compose:

# apt install docker-compose

Instalación de Portainer:

# docker volume create portainer_data
# docker run -d -p 8000:8000 -p 9443:9443 --name portainer \
> --restart=always \
> -v /var/run/docker.sock:/var/run/docker.sock \
> -v portainer_data:/data \
> portainer/portainer-ce:latest

Creación de carpetas para las configuraciones de los containers:

sudo mkdir /docker
sudo chown root.docker /docker
sudo chmod 774 /docker

Hasta aquí lo básico para poder manejar los contenedores.

Instalación de Home Assistant

Estructura del stack Docker Compose cogido de aquí en el enlace que pone Docker compose:

version: '3'
services:
homeassistant:
container_name: homeassistant
image: "ghcr.io/home-assistant/home-assistant:stable"
volumes:
- /PATH_TO_YOUR_CONFIG:/config
- /etc/localtime:/etc/localtime:ro
- /run/dbus:/run/dbus:ro
restart: unless-stopped
privileged: true
network_mode: host

Donde en PATH_TO_YOUR_CONFIG pondremos la carpeta donde estará homeassistant. Para ello en el NAS creo una carpeta dentro de la carpeta docker para homeassistant, luego la estructura del stack Docker Compose será:

version: '3'
services:
homeassistant:
container_name: homeassistant
image: "ghcr.io/home-assistant/home-assistant:stable"
volumes:
- /volume1/docker/homeassistant:/config
- /etc/localtime:/etc/localtime:ro
- /run/dbus:/run/dbus:ro
restart: unless-stopped
privileged: true
network_mode: host

Y le damos al botón Deploy the stack. Una vez credo el stack, aparecerá un nuevo contenedor funcionando, el del homeassistant. Para acceder a él usaremos el puerto 8123.

Instalación de Node Red

Volvemos a Portainer y editamos nuestro stack, añadiendo al final del script una nueva configuración para node-red. Previamente habremos creado como en el contenedor anterior una carpeta para él:

node-red:
image: nodered/node-red:latest
environment:
- TZ=Europe/Amsterdam
ports:
- "1880:1880"
volumes:
- /volume1/docker/nodered:/data

Y lo verificamos conectándonos por el puerto que hemos especificado, en este caso el 1880.