Ako nainštalovať phpMyAdmin pomocou Docker Compose
Spustite phpMyAdmin s Dockerom bez námahy – náš sprievodca poskytuje všetky náležitosti pre rýchle a plynulé nastavenie.
Už viac ako dve desaťročia je phpMyAdmin riešením na správu databáz MySQL a MariaDB.
Je to bezplatný nástroj s otvoreným zdrojovým kódom napísaný v PHP, ktorý používateľom umožňuje zvládať rôzne databázové aktivity, ako je vytváranie, úprava a odstraňovanie databáz; správa tabuliek, polí a indexov; vykonávanie príkazov SQL; a správa používateľov a povolení prostredníctvom pohodlného webového rozhrania.
Na jeho inštaláciu však potrebujete nainštalované PHP a podporu php-fpm nakonfigurovanú s vaším webovým serverom, či už je to NGINX, Apache alebo iný. Našťastie Docker tento proces zjednodušuje a umožňuje vám rýchlo nastaviť phpMyAdmin – v priebehu niekoľkých minút. To vám umožní okamžite sa sústrediť na správu databáz MySQL/MariaDB bez toho, aby ste uviazli v počiatočnom nastavení.
Táto príručka vás prevedie nastavením kontajnera phpMyAdmin pomocou Docker Compose a pokryje každý scenár, aby ste sa uistili, že sa správne pripojí k vašej databáze MySQL/MariaDB. Začnime teda!
Predpoklady
Pred pokračovaním v inštalácii sa uistite, že máte v systéme nainštalovaný Docker. Ale ak ho nemáte, nebojte sa; Ktorýkoľvek z nasledujúcich sprievodcov vám ho pomôže rýchlo získať. Vyberte si distribúciu, ktorú používate, v jednom z nasledujúcich odkazov: Ubuntu 24.04, Debian 12, Arch, Alma/Rocky, Fedora, Linux Mint 22, Pop!_OS 22.04 alebo Raspberry Pi OS.
Ďalšou dôležitou súčasťou je Docker Compose. Najnovšie verzie Dockeru teraz obsahujú Docker Compose inštaláciou balíka "docker-compose-plugin". Nainštalujte si ho, ak ešte nie je vo vašom nastavení.
Ak však chcete, môžete ho získať samostatne pomocou oboch nižšie uvedených príkazov. V takom prípade nezabudnite, že pri spúšťaní nástroja napíšte "docker-compose" namiesto "docker compose".
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-linux-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-composeSpúšťanie kontajnerov phpMyAdmin a MySQL spolu
Toto je najbežnejší scenár, keď MySQL začína so sprievodným kontajnerom phpMyAdmin na správu databázy. Aby sme to dosiahli, prvým krokom je vytvorenie adresára projektu, v ktorom bude umiestnený náš súbor nasadenia Docker Compose.
Potom naň prepnite; Odteraz musíte z tohto miesta vykonať všetky príkazy nižšie v tejto príručke.
mkdir phpmyadmin
cd phpmyadminVytvorte súbor s názvom "docker-compose.yml". Tento súbor definuje služby a zväzky pre naše inštancie phpMyAdmin a MySQL a povie Dockeru, čo má robiť a ako nastaviť nasadenie.
Otvorte svoj obľúbený textový editor a vložte doň nasledujúci obsah:
nano docker-compose.yamlservices:
phpmyadmin:
image: phpmyadmin:latest
container_name: phpmyadmin
ports:
- 8080:80
environment:
- PMA_ARBITRARY=0
- PMA_HOST=db
restart: unless-stopped
depends_on:
- db
db:
image: mysql:latest
container_name: mysql
ports:
- 3306:3306
environment:
MYSQL_ROOT_PASSWORD: mypassword
restart: unless-stopped
volumes:
- dbdata:/var/lib/mysql
volumes:
dbdata:Ako vidíte, nasadenie je jednoduché. Zahŕňa spustenie dvoch kontajnerov: jedného pre server MySQL a druhého pre samotnú aplikáciu phpMyAdmin. Poďme si prejsť kľúčové nastavenia.
Nastavením "PMA_ARBITRARY" na 0 sa odstráni možnosť zadať vlastného hostiteľa na prihlasovacej obrazovke phpMyAdmin. Je to preto, že používame špecifickú preddefinovanú "db" pre kontajner phpMyAdmin, ku ktorému sa chceme pripojiť.
Najdôležitejšia v časti služby "phpmyadmin" je "PMA_HOST". Určuje názov hostiteľa MySQL servera, ku ktorému sa má phpMyAdmin pripojiť.
Keďže však MySQL beží ako iný kontajner v rámci rovnakého nasadenia Dockeru, pripájame sa k nemu odkazom na názov služby, ktorý sme nastavili na "db".
V časti servera "db", ktorá nasadzuje server MySQL, nezabudnite zmeniť hodnotu možnosti "MYSQL_ROOT_PASSWORD" na zabezpečenú. Samozrejme, zabezpečujeme aj perzistenciu údajov MySQL vytvorením pomenovaného zväzku Docker.
Všetko je pripravené! Zadajte nasledujúci príkaz na spustenie a spustenie kontajnera na pozadí:
docker compose up -dZačnú sa sťahovať obrázky Dockeru. Mali by ste vidieť obrazovku podobnú tej nižšie, ktorá vás informuje, že vaša inštalácia phpMyAdmin/MySQL bola úspešne nasadená a kontajnery sú v prevádzke.
Teraz otvorte prehliadač a prejdite na "http://localhost:8080" alebo "http://<your-server-ip>:8080". Mali by ste vidieť prihlasovaciu stránku phpMyAdmin.
Ak sa chcete prihlásiť, použite používateľské meno "root" a heslo definované v súbore Docker Compose ako hodnoty možnosti "MYSQL_ROOT_PASSWORD". To je všetko! phpMyAdmin sa pripojí k inštancii MySQL a bude pripravený vám slúžiť.
V závislosti od vašich potrieb sa však teraz pozrime na niektoré ďalšie prípady použitia phpMyAdmin, s ktorými sa môžete stretnúť.
Pripojte phpMyAdmin k MySQL nainštalovanému na hostiteľovi
Čo však v prípade, že je váš server MySQL/MariaDB nainštalovaný priamo na hostiteľovi a nie je nasadený ako kontajner Docker? V takom prípade ho kontajner phpMyAdmin nemôže priamo vidieť, pretože je v samostatnej sieti Docker, izolovanej od siete hostiteľa.
Preto, aby sme mohli pripojiť phpMyAdmin k lokálne nainštalovanému MySQL, musíme vykonať niekoľko ďalších konfigurácií, a to ako na strane phpMyAdmin, tak aj na strane MySQL. Konečný súbor phpMyAdmin "docker-compose.yml" by mal vyzerať takto:
services:
phpmyadmin:
image: phpmyadmin:latest
container_name: phpmyadmin
ports:
- 8080:80
extra_hosts:
- "host.docker.internal:host-gateway"
environment:
- PMA_ARBITRARY=0
- PMA_HOST=host.docker.internal
restart: unless-stoppedKľúčovou časťou je tu možnosť "host.docker.internal:host-gateway". Je to špeciálny názov DNS rozpoznaný spoločnosťou Docker. Prekladá sa na IP adresu, ktorá smeruje do hostiteľského počítača, čo je obzvlášť užitočné, keď potrebujete kontajner na prístup k službám spusteným na hostiteľovi. Viac o tom – tu.
Okrem toho pre možnosť "PMA_HOST" zadajte tento názov DNS špecifický pre Docker, "host.docker.internal".
Na strane MySQL sa uistite, že možnosť "bind-address" je v konfiguračnom súbore MySQL nastavená na "0.0.0.0" a nie na "127.0.0.1". To umožňuje MySQL prijímať pripojenia z ľubovoľnej IP adresy.
Po vykonaní zmien nezabudnite reštartovať server MySQL, aby ste sa uistili, že sa prejavia. Spustením nižšie uvedeného príkazu môžete overiť, či je všetko správne nastavené. Skontrolujte výstup a zistite, či riadok MySQL znie "0.0.0.0".
netstat -tulnpTeraz spustite kontajner phpMyAdmin pomocou príkazu "docker-compose up -d" a prihláste sa pomocou účtu root pre váš server MySQL.
Ak sa chcete úspešne pripojiť, uistite sa, že používateľ root alebo akýkoľvek iný používateľ, ktorého používate na pripojenie k serveru MySQL prostredníctvom phpMyAdmin, má povolené povolenia na vzdialené pripojenie. Ďalšie podrobnosti o tom, ako spravovať používateľov MySQL, nájdete v našom sprievodcovi na túto tému.
Dôležitá poznámka: Vyššie uvedené nastavenia sprístupnia váš server MySQL z internetu alebo externých sietí. Vo všeobecnosti to nie je bezpečné a je to zlá bezpečnostná prax.
Na ochranu pred pokusmi o neoprávnený prístup je dôležité nastaviť firewall , ktorý povoľuje pripojenie iba z konkrétnych sietí, ako je vaša interná, a blokuje všetky ostatné.
Pripojenie phpMyAdmin k existujúcemu kontajneru MySQL
Posledný scenár je, keď už máme nasadený kontajner MySQL/MariaDB a chceme pridať phpMyAdmin na správu našej databázy prostredníctvom pohodlného grafického rozhrania. Aby ste to dosiahli, musí byť splnená iba jedna podmienka – oba kontajnery musia zdieľať rovnakú sieť Dockeru (aby boli navzájom viditeľné).
Najprv teda musíme vytvoriť sieť Docker, ktorú budú dva kontajnery zdieľať. Môžete ľahko vytvoriť jeden s názvom napríklad "mysql_network" vykonaním nasledujúceho príkazu:
docker network create mysql_networkAk chcete zobraziť zoznam dostupných sietí Docker, spustite nasledujúci postup:
docker network lsTeraz zastavte kontajner MySQL a upravte jeho nasadenie pridaním časti služby:
networks:
- mysql_networkA na jej konci definujte sieť. Konečná verzia by mala byť podobná:
services:
db:
image: mysql:latest
container_name: mysql
volumes:
- dbdata:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: mypassword
ports:
- 3306:3306
restart: unless-stopped
networks:
- mysql_network
volumes:
dbdata:
networks:
mysql_network:
name: mysql_network
external: trueTo isté urobte aj pre kontajner phpMyAdmin a samozrejme sa uistite, že ste správne zadali názov služby MySQL v možnosti "PMA_HOST":
services:
phpmyadmin:
image: phpmyadmin:latest
container_name: phpmyadmin
ports:
- 8080:80
environment:
- PMA_ARBITRARY=0
- PMA_HOST=db
restart: unless-stopped
networks:
- mysql_network
networks:
mysql_network:
name: mysql_network
external: trueTeraz budú oba kontajnery zdieľať rovnakú sieť, "mysql_network", ktorú sme vytvorili predtým. Preto sa budú navzájom zvidieť.
Nakoniec spustite kontajnery a mali by ste sa bez problémov prihlásiť do svojej inštancie MySQL cez phpMyAdmin.
Záver
Integrácia phpMyAdmin s Dockerom ponúka efektívny a efektívny prístup k správe databáz MySQL/MariaDB.
Či už nasadzujete phpMyAdmin spolu s MySQL v kontajneroch Docker, pripájate sa k serveru MySQL na hostiteľovi alebo integrujete s existujúcim kontajnerom MySQL, náš sprievodca vám poskytne všetky odpovede, ktoré potrebujete, aby ste to zrealizovali.
To šetrí drahocenný čas a znižuje možnosť chýb v konfigurácii, čo vám umožní viac sa sústrediť na správu databázy a menej na zložitosť nastavenia.
Ďalšie informácie o možnostiach dostupných pri vytváraní nasadenia nájdete v dokumentácii phpMyAdmin a MySQL na Docker Hub.
Ďakujem za váš čas! Ak máte nejaké otázky, zanechajte ich v sekcii komentárov nižšie.








