GNU/Linux >> Tutoriels Linux >  >> Panels >> Docker

Configurer Nextcloud avec Redis à l'aide de Docker

Aperçu

Nous allons suivre les étapes de configuration de Nextcloud avec Redis à l'aide de Docker. Pour ce processus, nous utiliserons Docker compose et créerons une pile pour déployer immédiatement le conteneur Nextcloud Docker avec MariaDB et Redis tous ensemble.

Conditions requises pour configurer Nextcloud avec Redis :

– Docker installé et en cours d'exécution sur le serveur hôte (Installer Docker)
– Docker compose installé (Installer Docker Compose)

Qu'est-ce que Redis et pourquoi est-il recommandé de le déployer avec Nextcloud

Redis est un serveur de cache d'objets open source qui peut être utilisé comme cache de base de données afin d'améliorer les performances de la base de données. Par défaut, Nextcloud n'a pas de cache de base de données (peut cependant être configuré) et sans cache de base de données, les performances de Nextcloud peuvent diminuer (être très lentes en d'autres termes) mais lorsque Redis est ajouté au jeu, cela peut considérablement améliorer les performances de Nextcloud. Redis dispose également d'un conteneur Docker officiel, que nous utiliserons dans ce fichier de composition docker.

Configurer Nextcloud avec Redis à l'aide de Docker

Dans le paragraphe suivant, la configuration de Docker compose est fournie ici et nous couvrirons la configuration de ce qu'elle fait :

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

L'approche que nous utilisons pour déployer les conteneurs est que nous spécifions chaque conteneur en tant que service, et chaque service aura son propre volume de données monté sur la machine hôte. Cette méthode nous permet de connecter plus facilement les conteneurs et de faire en sorte que certains conteneurs dépendent des autres pour fonctionner correctement.

Présentation du fichier docker compose yaml :

  • variante :'3' // Version Docker Compose
  • volume :// définir quels conteneurs auront des volumes montés
  • nextcloud :
  • db :
  • service :// définir quels conteneurs sont des services
  • db :// service de base de données pour nextcloud
  • image :mariadb // Docker officiel du serveur mariadb
  • redémarrer :toujours // argument pour toujours redémarrer le conteneur sur tout type de problème
  • commande :–transaction-isolation=READ-COMMITTED –binlog-format=ROW –innodb-file-per-table=1 –skip-innodb-read-only-compressed // commande à exécuter sur MariaDB pour configurer le format de table de la base de données. Sinon, vous pouvez rencontrer l'erreur Inno_DB refuse d'écrire
  • volumes :// base de données :/var/lib/mysql
  • environnement ://  Variables d'environnement où nous spécifions les informations d'identification de la base de données
  • – MYSQL_ROOT_PASSWORD=unmotdepasseracine
  • – MYSQL_PASSWORD=monmotdepasseSQL
  • – MYSQL_DATABASE=db
  • – MYSQL_USER=mysqluser
  • redis ://  service redis défini
  • image :redis //  Image officielle Redis Docker
  • redémarrer :toujours //  argument pour toujours redémarrer le conteneur sur tout type de problème
  •  commande :redis-server –requirepass someredispassword //  argument pour passer à la commande redis pour définir un mot de passe redis
  • application ://  défini nextcloud comme service
  • image :nextcloud //  défini l'image docker officielle de nextcloud
  • redémarrer :toujours //  argument pour toujours redémarrer le conteneur sur tout type de problème
  • ports :– 8080:80 //  argument pour définir les ports à exposer afin d'accéder au Nextcloud
  • liens :– db -redis // défini un lien redis et un lien de base de données pour que Nextcloud utilise et stocke des données (dans le lien, nous avons juste besoin de définir le nom du service de base de données que nous avons précédemment défini pour le conteneur MariaDB)
  • volumes :– nextcloud:/var/www/html //  variable d'environnement pour définir un volume persistant et stocker des données sur la machine hôte
  • environnement ://   Variables d'environnement où nous spécifions les informations d'identification de la base de données (celles-ci doivent correspondre aux informations d'identification MariaDB ci-dessus et fournir le mot de passe redis)
  • – MYSQL_PASSWORD=monmotdepasseSQL
  • – MYSQL_DATABASE=db
  • – MYSQL_USER=mysqluser
  • – MYSQL_HOST=db
  • – REDIS_HOST_PASSWORD=un mot de passe redis
  • dépend de ://  Variable d'environnement où nous spécifions la dépendance pour Nextcloud
  • – db
  • – redis

Déployer le fichier de composition Docker

Comment déployer cette pile :

Via le terminal et l'éditeur de texte, nous allons créer un nouveau répertoire dans lequel nous stockerons le docker-compose-yml et dans ce fichier nous collerons notre configuration yaml. Vous pouvez voir dans les images ci-dessous comment je l'ai fait :

Remarque - faites attention à l'indentation et assurez-vous que chaque ligne est dans une position d'indentation correcte.

Une fois que nous avons créé le fichier docker-compose et enregistré les modifications avec notre configuration yaml, pour déployer la pile, exécutez la commande suivante tout en restant dans le répertoire où se trouve notre fichier docker-compose :

docker-composer jusqu'à -d

Les résultats réussis devraient ressembler à ceci :

Vous pouvez vérifier avec la commande "docker ps -a" si les conteneurs sont présents et en cours d'exécution.

Lorsque vous avez confirmé que le déploiement a réussi, vérifiez dans votre navigateur si vous pouvez accéder à Nextcloud via l'adresse IP et le port exposé. Vous devriez pouvoir voir la page de démarrage de Nextcloud dans laquelle il vous demande de créer un compte administrateur et de terminer l'installation.

Résumé

Pour passer en revue ce que nous avons couvert dans cet article, expliquez comment configurer Nextcloud avec Redis à l'aide de Docker. Avec docker compose, nous avons déployé une pile de conteneurs docker dans un seul déploiement dans lequel nous avons configuré pour déployer Nextcloud qui utilisera Redis comme cache d'objet de base de données pour sa base de données MariaDB afin d'augmenter les performances de Nextcloud. Pour clarifier également ce n'est pas une méthode standard, ce n'est qu'une des nombreuses façons de créer cette pile Docker et de connecter ces services et je trouve que c'est l'une des méthodes les plus simples pour écrire une composition docker pour cette configuration.

Merci pour votre temps…


Docker
  1. Déployer Nextcloud sur Docker avec Ansible

  2. Comment installer Jenkins avec Docker

  3. Comment installer Docker sur CentOS

  4. Comment installer Nextcloud avec Docker sur votre serveur Linux

  5. 10 conseils faciles à suivre pour gérer une instance Nextcloud auto-hébergée avec Docker

Comment centraliser la gestion des journaux avec Graylog à l'aide de Docker

Comment exécuter Jenkins dans Docker à l'aide de Docker Compose avec des volumes

Surveillance des conteneurs Docker avec Grafana à l'aide de Dockprom

Utiliser Docker Desktop pour gérer un conteneur

Comment configurer l'équilibreur de charge Traefik avec Docker dans Ubuntu 20.04

Comment configurer Logstash sur Linux avec ElasticSearch, Redis, Nginx