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