Databázový server MySQL a Adminer přes Docker

…aneb když si hraje velryba s delfínem. :-)

Mnohem jednodušší než řešit instalace balíčků jako je XAMPP, MAMP apod. je využít schopností Dockeru, díky kterému si můžeme zprovoznit MySQL server.

Spuštění přímo z příkazové řádky

Stažení a instalace Docker Desktop

Docker je možné stáhnout z následujícího odkazu https://www.docker.com/get-started. Po instalaci je vhodné počítač restartovat.

Spuštění kontejneru s MySQL databázovým serverem

Následně v oblíbené příkazové řádce zadáme příkaz:

docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:latest

Nyní nám běží kontejner obsahující MySQL v nejaktuálnější verzi díky tagu „latest“ z předešlého příkazu.

Zprovoznění kontejneru s uživatelským rozhraním Adminer

Pro příjemnější práci s databázovým serverem využijeme uživatelské rozhraní Adminer, které naprogramoval Jakub Vrána

docker run --name adminer --link mysql:db -p 8080:8080 -d adminer:latest

Díky parametru link se nám propojí kontejner s názvem mysql a kontejner adminer jej bude síťově rozpoznávat jako db.

Parametr p pak slouží k namapování portu uvnitř kontejneru na port zvenčí, tedy hostitele. Jednouduše řečeno se jedná o zveřejnění portu kontejneru.

K rozhraní Adminer se pak připojíme prostřednictvím prohlížeče zadáním adresy http://localhost:8080.

Uživatelské jméno a heslo jsou root, pokud jste si při spouštění nenastavili jinak.

Nyní můžete velmi snadno pracovat s MySQL databázovým serverem.

PROBLÉM! Kontejnery se nespustily samy

Po aktualizaci operačního systému, Dockeru nebo z nějakého jiného důvodu se může stát, že se kontejnery vypnout. V tomto případě nám pomohou příkazy uvedené níže.

Pro výpis všech kontejnerů:

docker ps -a

Po zjištění názvu nebo lépe ID konkrétního kontejneru můžeme ručně kontejner spustit:

docker container start d7a73a9ecc9b

Kdyby nám náhodou některý kontejner překážel můžeme jej smazat:

docker container start d7a73a9ecc9b

Varianta přes docker-compose.yml

Vytvořte si adresář např. my-database a v něm soubor docker-compose.yml

do něj vložte:

version: '3.1'

services:

  adminer:
    image: adminer
    restart: always
    ports:
      - 8080:8080

  db:
    image: mysql:latest
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root

Spusťte příkazovou řádku v adresáři se souborem docker-compose a zavolejte příkaz

docker-compose up -d

Pokud s MySQL začínaté tak doporučuji tutoriály na W3 schools.