GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Docker

Richten Sie Nextcloud mit Redis mit Docker ein

Übersicht

Wir werden die Schritte zum Einrichten von Nextcloud mit Redis mit Docker durchgehen. Für diesen Prozess verwenden wir Docker Compose und erstellen einen Stack, um den Nextcloud-Docker-Container mit MariaDB und Redis zusammen bereitzustellen.

Anforderungen zum Einrichten von Nextcloud mit Redis:

– Docker installiert und ausgeführt auf dem Hostserver (Install Docker)
– Docker Compose installiert (Install Docker Compose)

Was ist Redis und warum wird empfohlen, es mit Nextcloud bereitzustellen

Redis ist ein Open-Source-Objekt-Cache-Server, der als Datenbank-Cache verwendet werden kann, um die Datenbankleistung zu verbessern. Standardmäßig hat Nextcloud keinen Datenbank-Cache (kann jedoch konfiguriert werden) und ohne Datenbank-Cache kann die Leistung von Nextcloud nachlassen (mit anderen Worten sehr langsam sein), aber wenn Redis ins Spiel kommt, kann es die Leistung von Nextcloud drastisch verbessern. Redis hat auch einen offiziellen Docker-Container, den wir in dieser Docker-Compose-Datei verwenden werden.

Nextcloud mit Redis mit Docker einrichten

Im folgenden Absatz wird die Docker-Compose-Konfiguration hier bereitgestellt und wir behandeln die Konfiguration, was sie tut:

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

Der Ansatz, den wir zum Bereitstellen der Container verwenden, besteht darin, dass wir jeden Container als Dienst angeben und jeder Dienst über ein eigenes bereitgestelltes Datenvolume auf dem Hostcomputer verfügt. Diese Methode ermöglicht es uns, Container einfacher zu verbinden und dafür zu sorgen, dass einige Container von anderen abhängig sind, um ordnungsgemäß zu funktionieren.

Überblick über die Yaml-Datei von Docker Compose:

  • Version:‘3’ // Docker-Compose-Version
  • Volumen:// Definieren, welche Container gemountete Volumes haben werden
  • nächste Wolke:
  • db:
  • Dienste:// Definieren, welche Container Dienste sind
  • db:// Datenbankdienst für nextcloud
  • Bild:mariadb // Offizieller Docker des mariadb-Servers
  • Neustart:immer // Argument, um den Container bei jeder Art von Problem immer neu zu starten
  • Befehl:–transaction-isolation=READ-COMMITTED –binlog-format=ROW –innodb-file-per-table=1 –skip-innodb-read-only-compressed // Befehl, der auf MariaDB ausgeführt werden soll, um das Datenbanktabellenformat zu konfigurieren. Andernfalls kann es vorkommen, dass Inno_DB den Schreibfehler verweigert
  • Volumes:// db:/var/lib/mysql
  • Umgebung://  Umgebungsvariablen, in denen wir die Datenbankanmeldeinformationen angeben
  • – MYSQL_ROOT_PASSWORD=irgendein Root-Passwort
  • – MYSQL_PASSWORD=ein mysqlpasswort
  • – MYSQL_DATABASE=db
  • – MYSQL_USER=mysqluser
  • redis://  redis-Dienst definiert
  • image:redis //  Offizielles Redis-Docker-Image
  • Neustart:immer //  Argument, um den Container bei jeder Art von Problem immer neu zu starten
  • Befehl:redis-server –requirepass someredispassword //  Argument zum Pass-Through-to-Redis-Befehl zum Festlegen eines Redis-Passworts
  • App://  nextcloud als Dienst definiert
  • Bild:nextcloud //  definierte das offizielle Nextcloud-Docker-Image
  • Neustart:immer //  Argument, um den Container bei jeder Art von Problem immer neu zu starten
  • Ports:– 8080:80 //  -Argument, um festzulegen, welche Ports offengelegt werden sollen, um auf die Nextcloud zuzugreifen
  • -Links:– db -redis // definierte einen Redis-Link und einen Datenbank-Link für Nextcloud, um Daten zu verwenden und zu speichern (in dem Link müssen wir nur den Namen des Datenbankdienstes festlegen, den wir zuvor für den MariaDB-Container festgelegt haben)
  • Volumen:– nextcloud:/var/www/html //  Umgebungsvariable, um ein persistentes Volume festzulegen und Daten auf dem Host-Rechner zu speichern
  • Umgebung://   Umgebungsvariablen, in denen wir die Datenbankanmeldeinformationen angeben (diese müssen mit den MariaDB-Anmeldeinformationen von oben übereinstimmen und das Redis-Passwort angeben)
  • – MYSQL_PASSWORD=ein mysqlpasswort
  • – MYSQL_DATABASE=db
  • – MYSQL_USER=mysqluser
  • – MYSQL_HOST=db
  • – REDIS_HOST_PASSWORD=someredispassword
  • abhängig_von://  Umgebungsvariable, in der wir die Abhängigkeit für Nextcloud angeben
  • – db
  • – redis

Docker-Compose-Datei bereitstellen

So stellen Sie diesen Stack bereit:

Über Terminal und Texteditor erstellen wir ein neues Verzeichnis, in dem wir die docker-compose-yml speichern, und in diese Datei fügen wir unsere yaml-Konfiguration ein. Sie können in den Bildern unten sehen, wie ich es gemacht habe:

Hinweis – achten Sie auf die Einrückung und stellen Sie sicher, dass sich jede Zeile an der richtigen Einrückungsposition befindet.

Nachdem wir die Docker-Compose-Datei erstellt und die Änderungen darin mit unserer Yaml-Konfiguration gespeichert haben, führen Sie zum Bereitstellen des Stacks den folgenden Befehl aus, während Sie sich noch in dem Verzeichnis befinden, in dem sich unsere Docker-Compose-Datei befindet:

docker-compose up -d

Die erfolgreichen Ergebnisse sollten wie folgt aussehen:

Sie können dies mit dem Befehl “docker ps -a” überprüfen ob die Container vorhanden sind und ausgeführt werden.

Wenn Sie bestätigt haben, dass die Bereitstellung erfolgreich war, überprüfen Sie in Ihrem Browser, ob Sie über die IP-Adresse und den offengelegten Port auf die Nextcloud zugreifen können. Sie sollten die Startseite von Nextcloud sehen können, auf der Sie aufgefordert werden, ein Administratorkonto zu erstellen und die Installation abzuschließen.

Zusammenfassung

Um zu überprüfen, was wir in diesem Beitrag behandelt haben, gehen Sie vor, wie Sie Nextcloud mit Redis mit Docker einrichten. Mit Docker Compose haben wir einen Stapel von Docker-Containern in einer einzigen Bereitstellung bereitgestellt, in der wir die Bereitstellung von Nextcloud konfiguriert haben, das Redis als Datenbankobjekt-Cache für seine MariaDB-Datenbank verwendet, um die Leistung von Nextcloud zu steigern. Um auch klarzustellen, dass dies keine Standardmethode ist, sondern nur eine von vielen Möglichkeiten, diesen Docker-Stack zu erstellen und diese Dienste zu verbinden, und ich finde, dass dies eine der einfachsten Methoden ist, um ein Docker-Compose für dieses Setup zu schreiben.

Vielen Dank für Ihre Zeit…


Docker
  1. Stellen Sie Nextcloud auf Docker mit Ansible bereit

  2. So installieren Sie Jenkins mit Docker

  3. Verwenden Sie Ubuntu mit einem Zwei-Bildschirm-Setup?

  4. Eine Kurzanleitung zur Verwendung von Docker Compose

  5. So installieren Sie Docker unter CentOS

So zentralisieren Sie die Protokollverwaltung mit Graylog mit Docker

So führen Sie Jenkins in Docker mit Docker Compose with Volumes aus

Überwachung von Docker-Containern mit Grafana mit Dockprom

Verwenden von Docker Desktop zum Verwalten eines Containers

So richten Sie Traefik Load Balancer mit Docker in Ubuntu 20.04 ein

So richten Sie Logstash unter Linux mit ElasticSearch, Redis, Nginx ein