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
Docker-Compose
Die Bereitstellung der Nextcloud erfolgt mittels Docker-Compose.
cd /docker/nextcloud/
sudo vi docker-compose.yml
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
Die Nextcloud-Instanz ist nun unter http://[Docker-IP]:8080 erreichbar und kann über die Weboberfläche aufgerufen werden.