====== [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 [[https://www.home-assistant.io/installation/alternative/|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''.