MariaDB mit docker-compose installieren
Einleitung
Wenn wir uns mit vielen Daten beschäftigen, die gespeichert werden sollen, werden relativ schnell Datenbanken verwendet. Datenbanken haben die Eigenschaft, dass diese sehr effizient mit vielen Daten umgehen können. Dazu kommt noch, dass mehrere Benutzer gleichzeitig auf die Daten zugreifen können. Datenbanken sind in fast jeder Firma und auch in jeglicher Software zu finden.
Installation
Zuerst müssen wir uns mit unserem Linux Server verbinden. Dies können wir über SSH / Telnet oder über eine serielle Verbindung machen.
Dann müssen wir sicherstellen, dass docker und docker-compose auf dem Server installiert ist. Falls nicht, habe ich in diesem Artikel beschrieben, wie man die Installation vornimmt: Docker und Docker-Compose installieren
Im nächsten Schritt erstellen wir in dem Ordner unserer Wahl, die docker-compose.yml und öffnen diese mit dem Editor unserer Wahl und fügen dort den folgenden Inhalt ein. Wir verändern daraufhin nur noch das Root Kennwort auf ein entsprechend sicheres Kennwort.
Ich erstelle für alle Services separate Ordner in denen die Daten der Container gespeichert werden können.
version: '3.1'
services:
db:
image: mariadb:latest
container_name: db
restart: always
environment:
MARIADB_ROOT_PASSWORD: <passwort>
volumes:
- ./db-data:/var/lib/mysql
ports:
- 3306:3306
Im nächsten Schritt starten wir den Container. Es werden dann die Daten von der Datenbank in dem lokalen Verzeichnis db-data angelegt und mit dem Verzeichnis im Container gemountet. Dadurch stellen wir sicher, dass die Daten auch nach einem Neustart noch vorhanden sind. Im Folgenden wird dann auch der root Benutzer angelegt und mit dem angegebenen Kennwort versehen.
docker-compose up -d
Sobald der Container gestartet ist, das erkennen wir an dem done welches erscheint, sobald der Container gestartet ist, können wir uns in den Container hineinschalten um die entsprechenden Datenbanken und Benutzer anzulegen.
docker exec -it db /bin/bash
Wir sind dann als root in dem Container angemeldet und können jetzt die MySQL-Shell öffnen.
mysql -u root -p
Und wir geben in der Aufforderung dann unser festgelegtes root Kennwort ein. Wir können dann nach erfolgter Anmeldung unsere Datenbanken und Benutzer anlegen.
Datenbank und Benutzer direkt anlegen lassen
Sobald wir eine Datenbank mit einem Benutzer direkt bei der Initialisierung des Containers automatisch anlegen lassen wollen, können wir folgende docker-compose.yml verwenden. Wir müssen nur den Namen der Datenbank, des Benutzers und das Kennwort des Benutzer entsprechend anpassen.
Der Benutzer erhält dann alle Berechtigungen nur auf die eine angelegte Datenbank
version: '3.1'
services:
db:
image: mariadb:latest
container_name: db
restart: always
environment:
- MARIADB_ROOT_PASSWORD: <passwort>
- MARIADB_DATABASE: <datenbank>
- MARIADB_USER: <benutzer>
- MARIADB_PASSWORD: <passwort>
volumes:
- ./db-data:/var/lib/mysql
ports:
- 3306:3306