GNU/Linux >> Linux Esercitazione >  >> Panels >> Docker

Configura Nextcloud con Redis usando Docker

Panoramica

Esamineremo i passaggi su come configurare Nextcloud con Redis utilizzando Docker. Per questo processo utilizzeremo Docker per comporre e creare uno stack per distribuire contemporaneamente il container Nextcloud Docker con MariaDB e Redis tutti insieme.

Requisiti per configurare Nextcloud con Redis:

– Docker installato e in esecuzione sul server host (Installa Docker)
– Docker Compose installato (Installa Docker Compose)

Cos'è Redis e perché si consiglia di implementarlo con Nextcloud

Redis è un server cache di oggetti open source che può essere utilizzato come cache di database per migliorare le prestazioni del database. Per impostazione predefinita Nextcloud non ha la cache del database (può essere configurata però) e senza la cache del database, le prestazioni di Nextcloud possono diminuire (essere molto lente in altre parole) ma quando Redis viene aggiunto al gioco, può migliorare drasticamente le prestazioni di Nextcloud. Redis ha anche un contenitore Docker ufficiale, che useremo in questo file di composizione Docker.

Configura Nextcloud con Redis utilizzando Docker

Nel paragrafo seguente, qui viene fornita la configurazione di composizione Docker e tratteremo la configurazione che cosa fa:

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'approccio che stiamo utilizzando per distribuire i contenitori è che stiamo specificando ogni contenitore come servizio e ogni servizio avrà il proprio volume di dati montato sulla macchina host. Questo metodo ci consente di collegare più facilmente i contenitori e fare in modo che alcuni contenitori dipendano da altri per funzionare correttamente.

Panoramica della finestra mobile per comporre il file yaml:

  • versione:'3' // Versione Docker Componi
  • volumi:// definendo quali contenitori avranno i volumi montati
  • nextcloud:
  • db:
  • servizi:// definire quali contenitori sono servizi
  • db:// servizio database per nextcloud
  • immagine:mariadb // Docker ufficiale del server mariadb
  • riavvia:sempre // argomento per riavviare il contenitore sempre su qualsiasi tipo di problema
  • comando:–transaction-isolation=READ-COMMITTED –binlog-format=ROW –innodb-file-per-table=1 –skip-innodb-read-only-compressed // comando da eseguire su MariaDB per configurare il formato della tabella del database. Altrimenti potresti riscontrare che Inno_DB si rifiuta di scrivere un errore
  • volumi:// db:/var/lib/mysql
  • ambiente://  Variabili d'ambiente in cui specifichiamo le credenziali del database
  • – MYSQL_ROOT_PASSWORD=qualchepasswordroot
  • – MYSQL_PASSWORD=somemysqlpassword
  • – MYSQL_DATABASE=db
  • – MYSQL_USER=mysqluser
  • redis://  servizio redis definito
  • immagine:redis //  Immagine ufficiale Redis Docker
  • riavvio:sempre //  argomento per riavviare il contenitore sempre su qualsiasi tipo di problema
  • comando:redis-server –requirepass someredispassword //  argomento da passare al comando redis per impostare una password redis
  • app://  definito nextcloud come servizio
  • immagine:nextcloud //  ha definito l'immagine ufficiale della finestra mobile nextcloud
  • riavvio:sempre //  argomento per riavviare il contenitore sempre su qualsiasi tipo di problema
  • porte:– 8080:80 //  argomento per impostare quali porte esporre per accedere a Nextcloud
  • link:– db -redis // definito un collegamento redis e un collegamento al database per Nextcloud per utilizzare e memorizzare i dati (nel collegamento dobbiamo solo impostare il nome del servizio di database che abbiamo precedentemente impostato per il contenitore MariaDB)
  • volumi:– nextcloud:/var/www/html //  variabile di ambiente per impostare un volume persistente e memorizzare i dati sulla macchina host
  • ambiente://   Variabili d'ambiente in cui specifichiamo le credenziali del database (queste devono corrispondere alle credenziali MariaDB di cui sopra e fornire la password redis)
  • – MYSQL_PASSWORD=somemysqlpassword
  • – MYSQL_DATABASE=db
  • – MYSQL_USER=mysqluser
  • – MYSQL_HOST=db
  • – REDIS_HOST_PASSWORD=someredispassword
  • dipende_da://  Variabile d'ambiente in cui specifichiamo la dipendenza per Nextcloud
  • – db
  • – redis

Distribuisci il file di composizione Docker

Come distribuire questo stack:

Tramite il terminale e l'editor di testo, creeremo una nuova directory in cui memorizzeremo la finestra mobile-compose-yml e in quel file incolleremo la nostra configurazione yaml. Puoi vedere nelle immagini qui sotto come ho fatto:

Nota:fai attenzione al rientro e assicurati che ogni riga sia in una posizione di rientro corretta.

Dopo aver creato il file docker-compose e salvato le modifiche in esso con la nostra configurazione yaml, per distribuire lo stack, eseguire il comando seguente mentre si trova ancora nella directory in cui si trova il nostro file docker-compose:

docker-componi -d

I risultati positivi dovrebbero assomigliare a questo:

Puoi controllare con il comando "docker ps -a" se i container sono presenti e funzionanti.

Quando hai confermato che la distribuzione è andata a buon fine, controlla nel tuo browser se puoi accedere a Nextcloud tramite l'indirizzo IP e la porta esposta. Dovresti essere in grado di vedere la pagina iniziale di Nextcloud in cui chiede di creare un account amministratore e di completare l'installazione.

Riepilogo

Per rivedere ciò che abbiamo trattato in questo post, procedi su come configurare Nextcloud con Redis utilizzando Docker. Con docker compose, abbiamo distribuito una pila di contenitori docker in un'unica distribuzione in cui abbiamo configurato per distribuire Nextcloud che utilizzerà Redis come cache di oggetti del database per il suo database MariaDB al fine di aumentare le prestazioni di Nextcloud. Per chiarire anche che questo non è un metodo standard, è solo uno dei tanti modi per creare questo stack Docker e connettere questi servizi e trovo che questo sia uno dei metodi più semplici per scrivere una composizione Docker per questa configurazione.

Grazie per il tuo tempo...


Docker
  1. Distribuisci Nextcloud su Docker utilizzando Ansible

  2. Usare Ubuntu con una configurazione a due schermi?

  3. Come installare Docker su CentOS

  4. Come installare Nextcloud con Docker sul tuo server Linux

  5. 10 suggerimenti facili da seguire per la gestione di un'istanza Nextcloud self-hosted con Docker

Come centralizzare la gestione dei registri con Graylog utilizzando Docker

Come eseguire Jenkins in Docker usando Docker Compose con volumi

Monitoraggio dei container Docker con Grafana utilizzando Dockprom

Utilizzo di Docker Desktop per gestire un container

Come configurare il servizio di bilanciamento del carico Traefik con Docker in Ubuntu 20.04

Come configurare Logstash su Linux con ElasticSearch, Redis, Nginx