Pagina 1 van 1

Mariadb en phpMyAdmin in docker

Geplaatst: 05 okt 2017, 19:33
door MaT
Onlangs de zeer leuke software docker ontdekt waarin ik nu al enkele programma's draai (en er komen er zeker nog meer bij).

Nu wil ik graag Mariadb draaien en beheren met phpMyAdmin, beiden in hun eigen docker container. De beide containers draaien (phpMyAdmin loginpagina en kan Mariadb beheren via terminal) maar ik krijg ze blijkbaar niet correct gelinked. Bij het proberen inloggen met root/test krijg ik deze fout melding:
phpMyAdmin.jpg
phpMyadmin kan de Mariadb database niet bereiken ondanks de instructies van beide gevolgd te hebben en ik heb geen idee waarom. Het is waarschijnlijk een onnozelheid die ik over het hoofd zie.

phpMyadmin: https://hub.docker.com/r/phpmyadmin/phpmyadmin/

Code: Selecteer alles

docker run --name phpmyadmin -d --link mariadb:db -p 8080:80 -v /docker/phpmyadmin:/etc/phpmyadmin -e PMA_PORT:3406 phpmyadmin/phpmyadmin

Mariadb: https://hub.docker.com/_/mariadb/

Code: Selecteer alles

docker run --name mariadb -d -p 3406:3306 -v /docker/mariadb:/etc/mysql -e MYSQL_ROOT_PASSWORD=test mariadb:latest

Re: Mariadb en phpMyAdmin in docker

Geplaatst: 05 okt 2017, 19:43
door brubbel
MariaDB-container poort 3406 wordt gemapt op docker0 poort 3306 (-p 3406:3306) en is dus niet bereikbaar vanuit de andere container op poort 3406 (PMA_PORT:3406).

MariaDB default poort is 3306 dus ik zou het eens omdraaien (-p 3306:3406). De rest identiek.

Re: Mariadb en phpMyAdmin in docker

Geplaatst: 05 okt 2017, 19:58
door MaT
Bedoel je de default poort van MariaDB aanpassen naar 3406, te mappen -p 3306;3406 en PMA_PORT 3306 gebruiken?
Want het is toch externe poort:interne poort?

Re: Mariadb en phpMyAdmin in docker

Geplaatst: 05 okt 2017, 20:01
door brubbel
Nee, MariaDB blijft intern op 3306. Enkel extern exposen/mappen op 3406 (-p 3306:3406). PHP container benadert nog altijd poort 3406.
Volgens mij is het -p INTERN:EXTERN.

Re: Mariadb en phpMyAdmin in docker

Geplaatst: 05 okt 2017, 20:05
door MaT
Volgens mij niet, dan zou ik phpMyadmin niet kunnen bereiken op poort 8080, wat wel lukt ;)

Re: Mariadb en phpMyAdmin in docker

Geplaatst: 05 okt 2017, 20:08
door brubbel
Ik zal mij vergissen. Pas alles eens aan naar de default MariaDB port? (3306)

Re: Mariadb en phpMyAdmin in docker

Geplaatst: 05 okt 2017, 20:11
door MaT
Is helaas niet mogelijk wegens conflict.. ik zou al op een andere machine moeten proberen, maar sowieso wil ik het op de huidige machine aan de praat krijgen met een alternatieve poort dus.

Re: Mariadb en phpMyAdmin in docker

Geplaatst: 05 okt 2017, 20:13
door brubbel
Het is inderdaad EXTERN:INTERN (net getest).
Ik krijg trouwens dezelfde fout onder ubuntu (Can't connect to local MySQL server).

Re: Mariadb en phpMyAdmin in docker

Geplaatst: 05 okt 2017, 21:28
door MaT
Draai jij de containers als host of bridge?

Re: Mariadb en phpMyAdmin in docker

Geplaatst: 05 okt 2017, 21:44
door ITnetadmin
Beginnervraagje: wat is docker? :-)

Re: Mariadb en phpMyAdmin in docker

Geplaatst: 05 okt 2017, 22:33
door brubbel
Ik gebruik de default mode (docker0 bridge). Had eens een paar testen gedaan met network=host maar ik had vreemde problemen dacht ik als het netwerk verandert, bv van ethernet naar wlan.

@ITnetadmin: the future :-) Ik gebruik docker sinds een goed jaar en het is een verademing.

Een soort OS level isolation (zoals cgroups) in plaats van virtuele machines. Op mijn simpele i3 pc draai ik met gemak 50 containers, maar geen 50 VM's. Een nieuw test environment starten? Letterlijk <1s.

Op AWS EC2 draai ik zo meerdere geisoleerde services per VM, met een watchdog voor automatische restarts. Updates en rollbacks zullen nooit simpeler worden.

Re: Mariadb en phpMyAdmin in docker

Geplaatst: 07 okt 2017, 23:18
door MaT
Solved!

Na veel opzoekwerk en trail & error experimenten is het gelukt met volgende instellingen:

phpMyAdmin:

Code: Selecteer alles

docker run --name phpmyadmin -d --link mariadb:db -p 8080:80 -e PMA_PORT:3306 phpmyadmin/phpmyadmin
Merk op:
  • Geen volume.
  • PMA_PORT is de standaard 3306 poort, niet de mapped 3406 poort ookal is ze wel gemapped in de MariaDB container.
  • Als de naam van de MariaDB container anders is moet je dit invullen bij 'server' of toevoegen als '-e PMA_HOST:naam_mariadb_container'
  • phpMyAdmin login pagina ziet er zo uit:
phpMyAdmin2.jpg

Mariadb:

Code: Selecteer alles

docker run --name mariadb -d -p 3406:3306 -v /docker/mariadb:/etc/mysql -e MYSQL_ROOT_PASSWORD=test mariadb:latest
Niets gewijzigd.

Re: Mariadb en phpMyAdmin in docker

Geplaatst: 08 okt 2017, 10:37
door Wuter
Ik had ook zo'n probleem met die fout kwam steeds met die MySQL 2002 fout. Was met install van owncloud.