Docker, ein Modewort im Internet? Überall hört man von Containern und ganze Dienste basieren nur auf Containertechnik. Da wird man als Laie natürlich neugierig und man kann nur was lernen wenn man es selber mal ausprobiert. Da ich bei der Suche nach phpmyadmin über einen Docker-Container gestolpert bin, wird das Ganze mal ausprobiert.

sudo apt-get install docker-engine
sudo service docker start

https://docs.docker.com/engine/installation/linux/debian/

Nun müssen wir den Container installieren.

docker pull phpmyadmin/phpmyadmin

https://docs.phpmyadmin.net/en/latest/setup.html

Den Container starten.

docker run --name myadmin -d -e PMA_HOST=192.168.x.xxx -p 8080:80 phpmyadmin/phpmyadmin

PMA_HOST gibt den Datenbank-Server an!

Der Aufruf erfolgt dann mittels

http://192.168.x.xxx:8080/

Ein paar wichtige Docker-Befehle

docker ps -a //Alle Container anzeigen
docker stop myadmin // Container stoppen
docker start myadmin // Container starten
docker rm myadmin // Container löschen

Nach einem Neustart des Computers muss der Docker-Container von Hand gestartet werden.

docker ps -a // Die ID kopieren.
docker start Docker-ID // Container wird neu gestartet!

Gut, wir sind faul :) Das Ganze beim Start des Rechners automatisieren. Schön erklärt in der Dokumentation von Docker.

https://docs.docker.com/engine/admin/host_integration/

Funktioniert! ;)

Ein kleines Problem hatte ich noch, mysql war nur lokal zu erreichen, ist aus Sicherheitsgründen so konfiguriert. Der Docker-Container läuft ja nur auf dem Host als eigenständiges Sys, dieser Container hat eine eigene lokale IP-Adresse.

ifconfig
docker0   Link encap:Ethernet  Hardware Adresse 02:42:21:d8:8f:65  
          inet Adresse:172.17.0.1  Bcast:0.0.0.0  Maske:255.255.0.0
          inet6-Adresse: fe80::42:21ff:fed8:8f65/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
          RX packets:977 errors:0 dropped:0 overruns:0 frame:0
          TX packets:855 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:0
          RX bytes:1373264 (1.3 MiB)  TX bytes:232849 (227.3 KiB)

Somit kann der Container auch nicht auf die Datenbank zugreifen. Aber auch das kann man einstellen. Auch hierzu wieder eine prima Anleitung.

http://www.huschi.net/12_123_de-mysql-fuer-externen-zugriff-konfigurieren.html

Danach lief der Container und ich hatte einwandfreien Zugriff auf die MySQL-Datenbank.