Ü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…