Beispiel MariaDB

Das Image stellt mit dem MariaDB-Service einen Background Prozesse zur Verfügung! Anm./Erinnerung: Container ohne Prozess(e) wird gleich wieder beendet! (siehe: hello-world)

docker run -d --name mariadb-test1 -e MYSQL_ROOT_PASSWORD=geheim mariadb

Stoppen eines Containers:

docker stop mariadb-test1

Containerinfos auslesen:

docker inspect maria-db-test1

Beachten: MariaDB Datenbank Verzeichnis /var/lib/mysql liegt im Docker-Container!

docker inspect maria-db-test1 | less

und die Zeilen mit Mounts analysieren.

Die Datenbank (wenn diese läuft) mit MySQL/MariDB-Client checken:

docker exec -it mariadb-test1 mysql -u root -p

Den Container analysieren:

docker exec -it mariadb-test1 /bin/bash
# Aufrufe:
cat /etc/os-release
ps ax
mysqld --version
exit

Das Logging übernimmt Docker für den Hintergrund-Daemon Mysqld:

docker logs mariadb-test1

Jetzt erweitern wir das Beispiel mit eigenem Volume im Userdir Home:

mkdir /home/joeb/varlibmysql     # manuelles mkdir (ggf.) nicht nötig!
docker run -d --name mariadb-test2 \
    -e MYSQL_ROOT_PASSWORD=geheim \
    -v /home/joeb/varlibmysql/:/var/lib/mysql  mariadb

So jetzt haben wir einen neuen Container mariadb-test2 mit den DB-Dateien im Homedir eines Users.

Hinweis

Diese Umleitung für Volumes kann bei Nicht-Linuxen problematisch sein!

Jetzt noch ein Container - hier mit Portumleitungen:

docker run -d --name mariadb-test3 \
    -v /home/joeb/varlibmysql/:/var/lib/mysql \
    -p 13306:3306 mariadb

Und jetzt klappt der Zugriff auch direkt über den Docker-Host:

mysql -u root -p --port 13306 --protocol=tcp