Schritt für Schritt Anleitung zur Erstellung eines mysql und phpmyadmin Containers in Docker.
Bevor wir den Container erstellen können, müssen wir zuerst das Image mit folgendem Befehl holen:
docker pull mysql/mysql-server:latestNachdem wir das Image nun geholt haben, können wir jetzt den Container erstellen.
Dazu führen wir den folgenden Befehl aus:
docker run --name container_name -dp new_port:default_port image_name
docker run erstellt anhand des Imagenamen einen Container
-
-pleitet default_port(Standardport) auf new_port um. -
--namegibt dem Container den Namen container_name. -
-dder Container läuft im Hintergrund.
Beim Erstellen eines neuen Containers wird automatisch ein Passwort von MySQL generiert.
Mit dem Befehl docker logs container_name kann man das Passwort einsehen.
Das Passwort muss allerdings nach dem ersten Einloggen geändert werden.
Als nächstes wollen wir auf das Terminal des MySQL Containers zugreifen, damit wir MySQL ausführen können.
docker exec -it container_name bash
-
-iinteraktiver Modus, bedeutet, dass der STDIN geöffnet bleibt. -
-tallokiert ein pseudo-tty.
Da wir uns jetzt im Bash des MySQL Containers befinden, können wir MySQL starten.
mysql -uroot -p
-urootspezifiziert den root als user-p???
Der Nutzer wird aufgefordert das generierte Passwort einzugeben.
Wenn die Anmeldung erfolgreich verlaufen ist, müssen wir nur noch das Passwort ändern.
Mit
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';
legen wir newpassword als neues Passwort fest.
Damit man auch außerhalb des Bash auf mysql zugreifen kann, muss man das Attribut host für den User root in
der Tabelle mysql.user ändern.
update mysql.user set host='%' where user='root' and host = 'localhost';
Anschließend müssen wir den flush privileges Befehl ausführen, weil wir eine Veränderung
in einer grant Tabelle durchgeführt haben.
Zuerst das phpmyadmin Image holen
docker pull phpmyadmin:latest
Wir erstellen anhand des Images einen phpmyadmin Container
docker run --name container_name -dp new_port:default_port --link mysql_container_name:db phpmyadmin
--linkverbindet den phpmyadmin Container mit mysql_container_name.

