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

Configurar Nextcloud con Redis usando Docker

Resumen

Seguiremos los pasos para configurar Nextcloud con Redis usando Docker. Para este proceso, usaremos Docker compose y crearemos una pila para implementar al mismo tiempo el contenedor Nextcloud Docker con MariaDB y Redis todos juntos.

Requisitos para configurar Nextcloud con Redis:

– Docker instalado y ejecutándose en el servidor host (Instalar Docker)
– Docker compose instalado (Instalar Docker Compose)

Qué es Redis y por qué se recomienda implementarlo con Nextcloud

Redis es un servidor de caché de objetos de código abierto que se puede utilizar como caché de base de datos para mejorar el rendimiento de la base de datos. Por defecto, Nextcloud no tiene caché de base de datos (aunque se puede configurar) y sin caché de base de datos, el rendimiento de Nextcloud puede disminuir (en otras palabras, ser muy lento), pero cuando se agrega Redis al juego, puede mejorar drásticamente el rendimiento de Nextcloud. Redis también tiene un contenedor Docker oficial, que usaremos en este archivo de composición de Docker.

Configurar Nextcloud con Redis usando Docker

En el siguiente párrafo, la configuración de composición de Docker se proporciona aquí y cubriremos la configuración y lo que hace:

version: '3'

volumes:

  nextcloud:

  db:

services:

  db:

    image: mariadb

    restart: always

    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-file-per-table=1 --skip-innodb-read-only-compressed

    volumes:

      - db:/var/lib/mysql

    environment:

      - MYSQL_ROOT_PASSWORD=somerootpassword

      - MYSQL_PASSWORD=somemysqlpassword

      - MYSQL_DATABASE=db

      - MYSQL_USER=mysqluser

  redis:

    image: redis

    restart: always

    command: redis-server --requirepass someredispassword

  app:

    image: nextcloud

    restart: always

    ports:

      - 8080:80

    links:

      - db
      - redis

    volumes:

      - nextcloud:/var/www/html

    environment:

      - MYSQL_PASSWORD=somemysqlpassword

      - MYSQL_DATABASE=db

      - MYSQL_USER=mysqluser

      - MYSQL_HOST=db

      - REDIS_HOST_PASSWORD=someredispassword

    depends_on:

      - db

      - redis

El enfoque que usamos para implementar los contenedores es que especificamos cada contenedor como un servicio, y cada servicio tendrá su propio volumen de datos montado en la máquina host. Este método nos permite conectar contenedores más fácilmente y hacer que unos contenedores dependan de otros para funcionar correctamente.

Descripción general del archivo docker redact yaml:

  • versión:'3' // Versión de composición de Docker
  • volúmenes:// definir qué contenedores tendrán volúmenes montados
  • siguiente nube:
  • bd:
  • servicios:// definir qué contenedores son servicios
  • bd:// servicio de base de datos para nextcloud
  • imagen:mariadb // Docker oficial del servidor mariadb
  • reiniciar:siempre // argumento para reiniciar el contenedor siempre en cualquier tipo de problema
  • comando:–transaction-isolation=READ-COMMITTED –binlog-format=ROW –innodb-file-per-table=1 –skip-innodb-read-only-compressed // comando para ejecutar en MariaDB para configurar el formato de la tabla de la base de datos. De lo contrario, puede experimentar que Inno_DB se niega a escribir un error
  • volúmenes:// db:/var/lib/mysql
  • entorno://  Variables de entorno donde especificamos las credenciales de la base de datos
  • – MYSQL_ROOT_PASSWORD=alguna contraseña raíz
  • – MYSQL_PASSWORD=algunacontraseñamysql
  • – MYSQL_DATABASE=db
  • – MYSQL_USER=mysqluser
  • redis://  servicio redis definido
  • imagen:redis //  Imagen oficial de Redis Docker
  • reiniciar:siempre //  argumento para reiniciar el contenedor siempre en cualquier tipo de problema
  • comando:redis-server –requirepass someredispassword //  argumento para pasar al comando redis para establecer una contraseña de redis
  • aplicación://  definió nextcloud como servicio
  • imagen:nextcloud //  definió la imagen acoplable oficial de nextcloud
  • reiniciar:siempre //  argumento para reiniciar el contenedor siempre en cualquier tipo de problema
  • puertos:– 8080:80 //  argumento para establecer qué puertos se expondrán para acceder a Nextcloud
  • enlaces:– db -redis // definimos un enlace redis y un enlace de base de datos para que Nextcloud use y almacene datos (en el enlace solo necesitamos establecer el nombre del servicio de base de datos que configuramos previamente para el contenedor MariaDB)
  • volúmenes:– nextcloud:/var/www/html //  variable de entorno para establecer un volumen persistente y almacenar datos en la máquina host
  • entorno://   Variables de entorno donde especificamos las credenciales de la base de datos (estas deben coincidir con las credenciales de MariaDB de arriba y proporcionar la contraseña de redis)
  • – MYSQL_PASSWORD=algunacontraseñamysql
  • – MYSQL_DATABASE=db
  • – MYSQL_USER=mysqluser
  • – MYSQL_HOST=db
  • – REDIS_HOST_PASSWORD=alguna contraseña
  • depende_de://  Variable de entorno donde especificamos la dependencia para Nextcloud
  • – base de datos
  • – redis

Implementar archivo de redacción de Docker

Cómo implementar esta pila:

A través de la terminal y el editor de texto, crearemos un nuevo directorio en el que almacenaremos docker-compose-yml y en ese archivo pegaremos nuestra configuración de yaml. Puedes ver en las fotos de abajo cómo lo hice:

Nota:tenga cuidado con la sangría y asegúrese de que cada línea esté en la posición de sangría correcta.

Una vez que creamos el archivo docker-compose y guardamos los cambios en él con nuestra configuración de yaml, para implementar la pila, ejecute el siguiente comando mientras aún se encuentra en el directorio donde se encuentra nuestro archivo docker-compose:

docker-compose up -d

Los resultados exitosos deberían verse así:

Puede verificar con el comando “docker ps -a” si los contenedores están presentes y funcionando.

Cuando confirme que la implementación fue exitosa, vuelva a verificar en su navegador si puede acceder a Nextcloud a través de la dirección IP y el puerto expuesto. Debería poder ver la página de inicio de Nextcloud donde le pide que cree una cuenta de administrador y complete la instalación.

Resumen

Para revisar lo que hemos cubierto en esta publicación, procese cómo configurar Nextcloud con Redis usando Docker. Con docker compose, implementamos una pila de contenedores docker en una sola implementación en la que configuramos para implementar Nextcloud que usará Redis como caché de objetos de base de datos para su base de datos MariaDB a fin de aumentar el rendimiento de Nextcloud. Para aclarar también, este no es un método estándar, es solo una de las muchas formas de crear esta pila de Docker y conectar estos servicios, y creo que este es uno de los métodos más simples para escribir una composición de Docker para esta configuración.

Gracias por su tiempo…


Docker
  1. Implemente Nextcloud en Docker usando Ansible

  2. Cómo instalar Jenkins con Docker

  3. ¿Usando Ubuntu con una configuración de dos pantallas?

  4. Una guía rápida para usar Docker Compose

  5. Cómo instalar Docker en CentOS

Cómo centralizar la gestión de registros con Graylog mediante Docker

Cómo ejecutar Jenkins en Docker usando Docker Compose con Volúmenes

Monitoreo de contenedores Docker con Grafana usando Dockprom

Uso de Docker Desktop para administrar un contenedor

Cómo configurar el balanceador de carga Traefik con Docker en Ubuntu 20.04

Cómo configurar Logstash en Linux con ElasticSearch, Redis, Nginx