GNU/Linux >> Znalost Linux >  >> Panels >> Docker

Jak spustit MySQL v Docker Container:Jednoduchý a snadno sledovatelný průvodce

Tato příručka vysvětluje krok za krokem, jak během několika minut nastavit nový server MySQL spuštěný v kontejneru Docker.

Jednou ze skvělých věcí na Dockeru je, že jej můžete rychle použít k vyzkoušení aplikací, aniž byste jej museli instalovat přímo do počítače. Docker můžete například použít ke spuštění databáze v kontejneru jako vzdáleného serveru a otestovat, jak s ní vaše aplikace spolupracuje.

Spouštění MySQL s kontejnery Docker je široce používaný mechanismus. MySQL je jednou z nejpopulárnějších databází používaných s kontejnery Docker.

Pro vytvoření MySQL jako kontejneru Docker by měl mít hostitelský počítač nainstalovaný Docker. Pokud jej nemáte nainstalovaný, zde je podrobný průvodce instalací Dockeru v Ubuntu.

1. Vytáhněte MySQL Docker Image

První věc, kterou musíte udělat, abyste vytvořili a otestovali server MySQL v Dockeru, je stáhnout oficiální obrázek MySQL z centra Docker Hub.

Můžete si stáhnout konkrétní verzi, například 8.0, 5.7, 5.6, nebo se rozhodnout pro nejnovější verzi, jak je vidět v následujícím příkazu:

sudo docker pull mysql:latest

Pokud chcete konkrétní verzi MySQL, nahraďte latest   s číslem verze.

Můžete spustit docker images zobrazíte seznam obrázků Docker, které jste stáhli z centra Docker.

sudo docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
mysql        latest    2fe463762680   13 hours ago   514MB

Jak můžete vidět, obraz MySQL je nyní dostupný pro náš lokálně nainstalovaný Docker.

2. Nastavení hlasitosti dockeru

Jak víte, kontejnery Docker jsou v zásadě dočasné a očekává se, že v případě odstranění kontejneru budou ztracena veškerá data nebo konfigurace.

Svazky Docker však poskytují mechanismus pro zachování dat vytvořených v kontejneru Docker. Jsou proto preferovaným mechanismem Dockeru pro ukládání trvalých dat kontejnerů Docker.

MySQL ukládá své datové soubory v /var/lib/mysql adresář. Před nasazením tedy budete muset nastavit svazek Docker, aby vaše databáze zůstala zachována. V opačném případě budou vaše data po restartování kontejneru ztracena.

Vytvoříme nový svazek a pojmenujeme ho mysql-data . Bude použit k uložení všech informací o vaší databázi.

sudo docker volume create mysql-data

Všechny svazky, které Docker zná, můžete zobrazit zadáním příkazu níže:

sudo docker volume ls
DRIVER    VOLUME NAME
local     mysql-data

Jak můžete vidět, náš nově vytvořený svazek Docker s názvem mysql-data je zde a je připraven poskytovat data. Poté jej lze připojit k čerstvě natočenému kontejneru MySQL.

3. Spusťte MySQL Docker Container

Nyní, když máte na svém počítači obraz MySQL Docker a svazek pro uložení dat, můžete nasadit kontejner. Musíte také nastavit heslo pro uživatele root MySQL pomocí MYSQL_ROOT_PASSWORD proměnná prostředí.

Nyní spustíme kontejner:

sudo docker run -d --name=mysql-server -p 3306:3306 -v mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=your_password mysql

A je to. Tím se spustí nejnovější verze instance MySQL, která může být vzdáleně přístupná odkudkoli se zadaným heslem root.

Aby byly věci transparentnější, pojďme tuto syntaxi rozebrat. Za prvé, zde je význam jednotlivých parametrů v tomto příkazu:

  • -d spustí tento kontejner v odděleném režimu, takže běží na pozadí.
  • --name přiřadí název mysql-server do vaší instance kontejneru. Pokud toto nezadáte, Docker vygeneruje náhodný název.
  • -p sváže kontejnerový port MySQL 3306 na stejný port na vašem hostitelském počítači. Budete se moci připojit k 127.0.0.1 na portu 3306 pomocí klientů MySQL (mysql ) běžící na vašem hostiteli.
  • -v možnost svázat tuto datovou složku uvnitř svazku kontejneru (/var/lib/mysql ) na místní svazek Docker (mysql-data ), který jste vytvořili v předchozím kroku.
  • -e nastavuje proměnnou prostředí. V tomto případě kořenové heslo MySQL.
  • mysql je název obrázku, který používáme k vytvoření kontejneru.

Zda kontejner běží, můžete zkontrolovat vypsáním spuštěných kontejnerů:

sudo docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                                                  NAMES
0fc229e3df77   mysql     "docker-entrypoint.s…"   37 minutes ago   Up 34 minutes   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql-server

4. Připojování ke kontejneru MySQL

Interaktivní shell MySQL můžete získat připojením ke kontejneru a spuštěním mysql příkaz. To poskytuje plné rozhraní příkazového řádku MySQL pro použití všech známých příkazů a příznaků.

sudo docker exec -it mysql-server mysql -u root -p

Můžete se také připojit k instanci MySQL Docker pomocí mysql klient, pokud jej máte na svém hostiteli předinstalovaný.

Pozor, klient mysql se ve výchozím nastavení pokouší připojit pomocí UNIX socketu, když mu řeknete, aby se připojil k localhost . Použijte tedy 127.0.0.1 a nikoli localhost .

mysql -u root -h 127.0.0.1 -p

Pro připojení k databázi můžete samozřejmě také použít klienta založeného na GUI, jako je MySQL Workbench. Například v MySQL Workbench pro „Hostname“ zadejte IP adresu počítače, na kterém jste spustili Docker Container.

Samozřejmě ve výše uvedených příkladech pro název hostitele můžete místo 127.0.0.1 použít IP adresu počítače, na kterém pracuje kontejner MySQL docker.

Tuto adresu můžete najít spuštěním ifconfig příkaz bez jakýchkoli argumentů.

Použití adresy IP počítače vám umožňuje vzdálený přístup k serveru MySQL.

5. Zastavit, spustit a restartovat kontejner MySQL

Tento příkaz se dočasně zastaví běžící kontejner MySQL (a lze jej obnovit/restartovat později):

sudo docker stop mysql-server

Chcete-li začít kontejneru MySQL, spusťte:

sudo docker start mysql-server

Níže uvedený příkaz slouží k restartování běžící kontejner MySQL:

sudo docker restart mysql-server

Závěr

Jak můžete vidět, spuštění MySQL v rámci Dockeru je mnohem rychlejší a jednodušší než místní instalace MySQL Serveru. Existuje však mnoho dalších věcí, které je třeba zvážit, pokud budete používat MySQL na Dockeru pro něco jiného než testování.

Další informace najdete na stránce MySQL na Docker Hub a v oficiální příručce MySQL na toto téma.

Pokud máte nějaké dotazy nebo návrhy, dejte nám vědět. Rád se s vámi spojím.


Docker
  1. Jak vytvořit MySQL Docker Container pro testování

  2. Jak poslat signál ke spuštění programu v kontejneru dockeru?

  3. Jak přidat uživatele do kontejneru Docker?

  1. Jak spustit Nginx v kontejneru Docker:Průvodce krok za krokem

  2. Jak nainstalovat WordPress s Dockerem, snadno sledovatelný průvodce

  3. Jak spustit MySQL v kontejneru Docker

  1. Jak spustit program uvnitř kontejneru Docker?

  2. Jak spustit příkaz na spuštěném kontejneru Docker

  3. Jak nastavit jednoduchý webový server Apache v kontejneru Docker