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.