Úvod
MySQL je známý open-source systém pro správu relačních databází a jedno z nejpopulárnějších řešení pro webový server. Ukládá a strukturuje data smysluplným způsobem a zajišťuje snadný přístup.
Docker je sada produktů typu platform-as-a-service, které podporují vývoj CI/CD. Umožňuje uživatelům vyvíjet a nasazovat aplikace ve virtuálních prostředích, nazývaných kontejnery. S jediným obrazem může Docker spustit aplikaci se všemi jejími knihovnami a závislostmi.
V tomto kurzu se dozvíte, jak nasadit kontejner MySQL Docker a začít pracovat s kontejnerizovanou databází.
Předpoklady
- Přístup k příkazovému řádku/oknu terminálu
- Uživatelský účet s sudo oprávnění nebo přístup k rootu účet
- Stávající instalace Dockeru
Spuštění kontejneru MySQL Docker
Pokud potřebujete nastavit databázi rychle a bez použití příliš mnoha zdrojů, nasazení MySQL v kontejneru je rychlé a efektivní řešení. To je vhodné pouze pro malé a středně velké aplikace. Aplikace na podnikové úrovni nenalezly kontejner MySQL Docker dostatečné pro jejich pracovní vytížení.
Používání softwaru Docker k nastavení databáze je u malých aplikací stále oblíbenější. Namísto samostatného serveru pro hostování databáze můžete nasadit kontejner databáze MySQL.
Na vašem počítači může běžet více kontejnerů. Kontejnery sdílejí stejné jádro a knihovny hostitele a zabalují nasazenou aplikaci nebo software do jednotlivých jednotek. Díky tomu je databáze mimořádně lehká a rychle se roztáčí.
Instalace kontejneru MySQL Docker Container
Nastavení databáze v Dockeru je jednoduše vytvoření kontejneru založeného na obrazu MySQL. Chcete-li svůj kontejner MySQL zprovoznit a spustit, postupujte podle níže uvedených kroků.
Krok 1:Vytáhněte obrázek MySQL Docker
1. Začněte stažením příslušného obrazu Dockeru pro MySQL. Můžete si stáhnout konkrétní verzi nebo se rozhodnout pro nejnovější verzi, jak je vidět v následujícím příkazu:
sudo docker pull mysql/mysql-server:latest
Pokud chcete konkrétní verzi MySQL, nahraďte latest
s číslem verze.
2. Ověřte, zda je obraz nyní uložen místně, a to uvedením stažených obrazů Docker:
sudo docker images
Výstup by měl obsahovat mysql/mysql-server
mezi uvedenými obrázky.
Krok 2:Nasazení kontejneru MySQL
1. Jakmile budete mít obraz, přejděte k nasazení nového kontejneru MySQL pomocí:
sudo docker run --name=[container_name] -d [image_tag_name]
- Nahraďte
[container_name]
se jménem dle vašeho výběru. Pokud nezadáte název, Docker vygeneruje náhodné. -d
možnost Instruuje Docker, aby spustil kontejner jako službu na pozadí.- Nahraďte
[image_tag_name]
s názvem obrázku staženého v kroku 1.
V tomto příkladu vytvoříme kontejner s názvem mysql_docker
s latest
tag verze:
sudo docker run --name=[container_name] -d mysql/mysql-server:latest
2. Poté zkontrolujte, zda je spuštěn kontejner MySQL:
docker ps
Ve výstupu byste měli vidět nově vytvořený kontejner. Zahrnuje podrobnosti o kontejneru, jedním z nich je stav tohoto virtuálního prostředí. Stav se změní z health: starting
na healthy
, jakmile je nastavení dokončeno.
Krok 3:Připojte se ke kontejneru MySQL Docker Container
1. Než budete moci připojit kontejner serveru MySQL k hostiteli, musíte se ujistit, že je nainstalován klientský balíček MySQL:
apt-get install mysql-client
2. Poté otevřete soubor protokolů pro kontejner MySQL a najděte vygenerované heslo root:
sudo docker logs [container_name]
Pro mysql_docker
kontejner, spustíme:
sudo docker logs mysql_docker
3. Procházejte výstup a najděte řádek [Entrypoint] GENERATED ROOT PASSWORD
:, zkopírujte a vložte heslo do poznámkového bloku nebo textového editoru, abyste je mohli použít později.
4. Dále přejděte do shellu bash kontejneru MySQL zadáním:
sudo docker exec -it [container_name] bash
Pro kontejner vytvořený jako příklad spustíme:
sudo docker -it mysql_docker bash
3. Po zobrazení výzvy zadejte heslo uživatele root, které jste zkopírovali ze souboru protokolů. Tím jste připojili klienta MySQL k serveru.
4. Nakonec změňte heslo root serveru, abyste ochránili své informace:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '[newpassword]';
Nahraďte [newpassword]
se silným heslem dle vašeho výběru.
Konfigurace kontejneru MySQL
Když nainstalujete kontejner MySQL, najdete možnosti jeho konfigurace v /etc/mysql/my.cnf=
adresář.
Pokud potřebujete upravit konfiguraci, vytvořte alternativní konfigurační soubor na hostitelském počítači a připojte jej do kontejneru.
1. Nejprve vytvořte nový adresář na hostitelském počítači:
sudo mkdir -p /root/docker/[container_name]/conf.d
2. Vytvořte vlastní konfigurační soubor MySQL v tomto adresáři:
sudo nano /root/docker/[container_name]/conf.d/my-custom.cnf
3. Jakmile budete v souboru, můžete přidat řádky s požadovanou konfigurací.
Pokud například chcete zvýšit maximální počet připojení na 250 (místo výchozích 151), přidejte do konfiguračního souboru následující řádky:
[mysqld]
max_connections=250
4. Uložte a ukončete soubor.
5. Aby se změny projevily, musíte odstranit a znovu spustit kontejner MySQL . Tentokrát kontejner používá kombinaci nastavení konfigurace z nově vytvořeného souboru a výchozích konfiguračních souborů.
Chcete-li to provést, spusťte kontejner a namapujte cestu svazku pomocí příkazu:
docker run \
--detach \
--name=[container_name] \
--env="MYSQL_ROOT_PASSWORD=[my_password]" \
--publish 6603:3306 \
--volume=/root/docker/[container_name]/conf.d:/etc/mysql/conf.d \
mysql
6. Chcete-li zkontrolovat, zda kontejner načetl konfiguraci z hostitele, spusťte následující příkaz:
mysql -uroot -pmypassword -h127.0.0.1 -P6603 -e 'show global variables like "max_connections"';
Měli byste vidět, že maximální počet připojení je nyní 250
.
Správa úložiště dat
Ve výchozím nastavení Docker ukládá data do svého interního svazku.
Chcete-li zkontrolovat umístění svazků, použijte příkaz:
sudo docker inspect [container_name]
Zobrazí se /var/lib/mysql
nainstalované v interním svazku.
Můžete také změnit umístění datového adresáře a vytvořit jeden na hostiteli. Mít svazek mimo kontejner umožňuje dalším aplikacím a nástrojům přistupovat ke svazkům v případě potřeby.
1. Nejprve najděte vhodný svazek na hostiteli a vytvořte na něm datový adresář:
sudo mkdir -p /storage/docker/mysql-data
2. Nyní znovu spusťte kontejner a připojte dříve vytvořený adresář:
docker run \
--detach \
--name=[container_name] \
--env="MYSQL_ROOT_PASSWORD=my_password" \
--publish 6603:3306 \
--volume=/root/docker/[container_name]/conf.d:/etc/mysql/conf.d \
--volume=/storage/docker/mysql-data:/var/lib/mysql \
mysql
Pokud si kontejner prohlédnete, měli byste vidět, že kontejner MySQL nyní ukládá svá data na hostitelském systému. Spusťte příkaz:
sudo docker inspect [container_name]
Spuštění, zastavení a restartování kontejneru MySQL
Kontejner se automaticky zastaví, když se zastaví proces v něm běžící.
Chcete-li spustit kontejner MySQL spustit:
sudo docker start [container_name]
Zastavte kontejner MySQL , použijte příkaz:
sudo docker stop [container_name]
Chcete-li restartovat kontejner MySQL spustit:
sudo docker restart [container_name]
Odstranit kontejner MySQL
Před odstraněním kontejneru MySQL se ujistěte, že jste jej nejprve zastavili.
Poté vyjměte kontejner dokovacího zařízení pomocí:
sudo docker rm [container_name]