Nextcloud mit Docker installieren

Installation von Docker

Um die Nextcloud mittels eines Docker-Containers bereitzustellen, muss Docker selbst auf dem Zielsystem installiert werden.

sudo apt-get -y install docker docker-compose docker.io

Verzeichnisstruktur anlegen

Docker-Container speichern normalerweise die Daten nicht persistent, deshalb legen wir eine Verzeichnisstruktur für die persistenten Daten an.

sudo mkdir -p /docker/nextcloud
Verzeichnisstruktur

Docker-Compose

Die Bereitstellung der Nextcloud erfolgt mittels Docker-Compose.

cd /docker/nextcloud/
sudo vi docker-compose.yml
Docker-Compose Editor

Docker-Compose-Datei

Wir füllen diese mit folgendem Inhalt.

version: '3'
      
      volumes:
        data:
        config:
        db:
      
      services:
        nextcloud-db:
          image: mariadb
          container_name: nextcloud-db
          restart: always
          volumes:
            - ./db:/var/lib/mysql
          environment:
            - MYSQL_ROOT_PASSWORD=
            - MYSQL_PASSWORD=
            - MYSQL_DATABASE=nextcloud
            - MYSQL_USER=nextcloud
        nextcloud:
          image: nextcloud
          container_name: nextcloud
          restart: always
          ports:
            - 8080:80
          depends_on:
            - nextcloud-db
          volumes:
            - ./config:/var/www/html/config
            - /nextcloud-data:/var/www/html/data
            - ./apps:/var/www/html/apps
            - ./custom_apps:/var/www/html/custom_apps

Um zu verstehen, wie das Dokument aufgebaut ist, folgt hier die Erklärung.

Die einzelnen Tags innerhalb der Service-Definitionen haben folgende Bedeutung.

  • image: Das Image, welches aus dem Docker-Hub heruntergeladen wird
  • container_name: Friendly-Name für den Docker-Container
  • restart: Neustart-Policy, hier wird der Container „immer“ neu gestartet, sollte er nicht laufen
  • ports: Freigegebene Ports, damit der Container auch von außerhalb erreichbar ist, z.B. dem eigenen PC
  • depends_on: Abhängigkeit von einem anderen Service, hier beispielhaft der zuvor definierten Datenbank. Der Container startet nur, wenn der andere Container vorhanden ist und läuft
  • volumes: Definition der persistenten Datenspeicher
  • environment: Umgebungvariablen, wie z.B. Passwörter oder Namen

Container starten

Die Container können einfach mit den folgenden Befehlen gestartet werden:

sudo docker-compose pull
sudo docker-compose up -d
Container Starten

Die Nextcloud-Instanz ist nun unter http://[Docker-IP]:8080 erreichbar und kann über die Weboberfläche aufgerufen werden.

Datenbank einrichten Nextcloud Dashboard