Scharf Beobachtet

Tech Know How

MYSQL Datenbank in einem Docker Container

2021-10-16 14:35:51

Schrittweise erklärt, mit welchen Befehlen man auf einem Mac eine Datenbank in Docker laufen lassen kann.

Docker ist bereits installiert und läuft. Admin Rechte für den Rechner/User benötigt.

Los gehts

Starten wir mit einem Verzeichnis im Documents-Bereich

mkdir /~/Documents/Dockers/

Im Terminal, starten eines neuen Containers, wir nennen ihn mysql_docker

docker run --name=mysql_docker -d mysql/mysql-server:latest

Nachdem sich Docker alles aus dem Netz geladen hat, holen wir uns einmal die Logs, um das initiale Root Datenbank Passwort zu sehen

docker logs mysql_docker

Mit dem folgenden Befehl geht es in den Docker Container

docker exec -it mysql_docker bash

Dort angekommen, loggen wir uns direkt in die MYSQL Datenbank ein und erhalten den Cursor auf die MYSQL

mysql -u root -p[das_Passwort_aus_den_Logs]

Das Passwort sollte generell geändert werden. Und damit wir auch von außerhalb, mit anderen Programmen auf die Datenbank zugreifen können, erlauben wir den Zugriff auch

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '[newpassword]';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '[newpassword]';

So, nun mittels exit und exit aus der MYSQL und dem Container wieder raus.

Nun wollen wir die Conf und die Daten auf unseren Mac auslagern. Dazu legen wir ein Conf-Verzeichnis und ein Data Verzeichnis an, auf dem Mac

mkdir -p ./mysql_docker/conf.d/
mkdir -p ./mysql_docker/docker/mysql-data

Nun legen wir mit dem Terminal Editor nano die Conf Datei an, und fügen zwei Zeilen hinzu, um eine erste Konfiguration vorliegen zu haben.

nano ./mysql_docker/conf.d/my-custom.cnf

Folgendes einfügen

[mysqld]
max_connections=250

Mit Ctrl+W und Ctrl+O wird gespeichert/geschlossen.

Jetzt fügen wir den Docker Container run-Befehl mit der Conf und dem Verzeichnis für ausgelagerte Daten zusammen.

docker run \
--detach \
--name=mysql_docker \
--env="MYSQL_ROOT_PASSWORD=[newpassword]" \
--publish 6603:3306 \
--volume=/~/Documents/Dockers/mysql_docker/conf.d:/etc/mysql/conf.d \
--volume=/~/Documents/Dockers/mysql_docker/docker/mysql-data:/var/lib/mysql \
mysql

Um den Container zu beenden und zu entfernen, werden folgende Befehle verwendet:

docker container stop mysql_docker
docker container rm mysql_docker

Mit dem folgenden Befehl kann man auch einmal den Container Aufbau ansehen, wenn dieser läuft:

sudo docker inspect mysql_docker

Weitere nützliche Befehle, zum Container managen:

docker start mysql_docker
docker restart mysql_docker
docker stop mysql_docker

Zurück