Pokud plánujete nainstalovat MariaDB do svého systému, možná ji budete chtít izolovat od zbytku systému, abyste nic neporušili. Je pravda, že můžete použít virtuální počítač, ale vyžadovalo by to spoustu zdrojů, protože budete muset nainstalovat celý systém na druhý. Proč tedy nenasadit Docker pro MariaDB?
Pokud máte omezený hardware, není problém, Docker vám může pomoci! Docker je odlehčené virtualizační řešení. A v tomto tutoriálu se naučíte nasadit produkční Docker pro instalaci serveru MariaDB v kontejneru Docker s menším využitím zdrojů.
Čtěte dál a už nikdy neplýtvejte svými zdroji!
Předpoklady
Tento tutoriál bude praktickou ukázkou. Pokud chcete sledovat, ujistěte se, že máte následující.
- Počítač Linux – Tato ukázka používá Ubuntu 20.04 LTS, ale budou fungovat všechny distribuce Linuxu.
- Docker nainstalovaný ve vašem počítači.
- Uživatel bez oprávnění root s právy sudo.
Práce s Obrázkem MariaDB Docker
Nejlepší způsob, jak začít pracovat s MariaDB na vašem počítači, je použít oficiální obrázek Docker pro MariaDB. Obrázek obsahuje instalaci nejnovější stabilní verze MariaDB a několik skriptů, které vám pomohou spravovat kontejner.
1. Spusťte apt update
níže, abyste se ujistili, že váš systém je aktuální. Tento příkaz načte nejnovější seznamy balíčků z úložišť Ubuntu a nainstaluje všechny dostupné balíčky.
sudo apt update -y
2. Dále spusťte systemctl
příkazem níže spustíte docker
servis.
sudo systemctl start docker
Spuštění služby Docker neposkytuje výstup. Pokud však spustíte příkazy související s dockerem, zatímco Docker není spuštěn, zobrazí se následující chyba.
3. Spusťte docker status
níže, abyste zajistili, že docker
služba běží.
sudo service docker status
Níže můžete vidět, že služba Docker je aktivní (běží).
4. Nakonec spusťte gpasswd
příkaz níže pro přidání aktuálního uživatele do dockeru skupina. Uživatel tak může spustit docker
příkazy.
sudo gpasswd -a "${USER}" docker
Přidání aktuálního uživatele do ukotvitelného panelu group vás ochrání před následující chybou při spuštění příkazu docker.
5. Spusťte níže uvedené docker search
příkaz k vyhledání obrazu MariaDB. Tento příkaz hledá v Docker Hub (oficiální sada úložišť) obrázky, které odpovídají mariadb
a vrátí výsledky.
sudo docker search mariadb
Zaškrtněte libovolný obrázek, který chcete použít k instalaci MariaDB. Tato ukázka používá oficiální obrázek s názvem mariadb, protože se dobře udržuje.
Sloupec OFICIÁLNÍ zobrazuje stav OK, pokud je obrázek oficiální. Pokud obrázek nemá stav OK, přidal obrázek komunitní vývojář. V takovém případě budete muset v případě problémů s obrázkem kontaktovat vývojáře.
6. Nyní spusťte docker pull
příkaz ke stažení obrázku, který jste vybrali (v kroku 5) z úložiště Docker. Tento příkaz se stáhne (pull
) vybraný obrázek z jeho oficiálního úložiště a uloží jej na váš místní počítač.
sudo docker pull mariadb
Po dokončení příkazu získáte na serveru nejnovější stabilní verzi obrazu MariaDB, jak je znázorněno níže.
Pokud dáváte přednost instalaci předchozích verzí, můžete použít značky dostupné pro daný obrázek. Přejděte na Značky obrázku sloupců v dockerhubu pro zobrazení všech verzí, poté spusťte příkaz docker pull a zadejte přesnou verzi, jak je uvedeno níže. sudo docker pull mariadb:10.2
7. Nakonec spusťte docker images
příkaz k zobrazení seznamu všech obrázků přítomných na vašem serveru. V tomto okamžiku byste měli mít na svém serveru platný obraz MariaDB Docker.
sudo docker images
Níže můžete vidět mariadb je název obrázku dockeru se značkou jako nejnovější.
Vytvoření kontejneru MariaDB pro spuštění místního serveru MariaDB
Nyní, když máte obraz MariaDB na svém serveru, můžete spustit kontejner pomocí tohoto obrazu. Kontejner je izolované, prostředky řízené a přenosné běhové prostředí, které běží nad operačním systémem.
Nejprve musíte vytvořit nový opt/mariadb/backup adresář na vašem serveru pro uložení záložního souboru, který vytvoříte v této ukázce. Zálohování dat ve vašem produkčním prostředí je zásadní před provedením změn, pokud se něco pokazí.
Když změníte interní svazek kontejneru, tato změna se zkopíruje do mapovaného hostitelského adresáře. Chcete-li si tedy ponechat záložní kopii všech dat kontejneru, vytvořte svazek na místním serveru.
1. Spuštěním níže uvedeného příkazu vytvořte opt/mariadb/backup
adresář. -p
volba zajišťuje, že nadřazený adresář existuje před vytvořením tohoto adresáře.
Pokud některý z nadřazených adresářů v cestě neexistuje, příkaz selže.
sudo mkdir -p opt/mariadb/backup
2. Dále spusťte docker run
příkaz níže k vytvoření kontejneru Docker z mariadb
obraz. Tento příkaz provede následující:
- Mapy (
-v
) výchozí adresář pro data MariaDB (/var/lib/mysql
) ve vašem kontejneru Docker ve vašem hostitelském adresáři (/opt/mariadb/backup
).
- Deklaruje proměnnou prostředí MariaDB (
-e
)MYSQL_ROOT_PASSWORD
pro uložení hesla root pro server MariaDB. Nezapomeňte nahraditata123
pomocí vašeho zabezpečeného hesla.
- Říká Dockeru, aby spustil kontejner v odpojeném režimu (
-d
), takže kontejner běží na pozadí. Pokud tak učiníte, umožní vám opustit aktuální relaci a pokračovat v práci, zatímco tento kontejner běží na pozadí. Pokud ne, zobrazí se prázdná výzva a budete muset zabít běžící kontejner.
- Určuje název kontejneru (
--name mariadbata
) vytvořit. Můžete nahraditmariadbata
s vaším jedinečným preferovaným jménem.
- Zpřístupní výchozí port MariaDB 3306 hostitelskému počítači (
-p 3306:3306
) (kde služba MariaDB naslouchá vašim klientským připojením). V případě produkčního serveru namapujete výchozí port na produkční port. Ale můžete nahradit3306
s jiným číslem produkčního portu.
sudo docker run --name mariadbata -p 3306:3306 -v /opt/mariadb/backup:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=ata123 -d mariadb
V tomto okamžiku je kontejner vytvořen a běží na pozadí, ale nikdy si nemůžete být příliš jisti. V dalším kroku tedy kontejner ověříte.
3. Spusťte docker ps
příkaz k ověření, zda je váš kontejner Docker aktivní nebo ne.
sudo docker ps
Níže můžete vidět, že kontejner mariadbata je již před 7 minutami v provozu a naslouchá na portu 3306 na všech hostitelských rozhraních. Můžete také vidět ID (3a7fa779b559) kontejneru.
Toto jedinečné ID můžete použít k připojení ke kontejneru, zobrazení kontejnerů, zastavení kontejnerů nebo odstranění kontejneru.
4. Nyní spusťte docker exec
příkazem níže zkontrolujte verzi serveru MariaDB v mariadbata
kontejner.
sudo docker exec -it mariadbata mysql -V
V době psaní je nejnovější verze mariadb 10.6.5, jak je uvedeno níže, a vaše verze se může lišit. Protože MariaDB je fork MySQL, Docker použil klienta mysql jako výchozího klienta pro interakci se službou MariaDB uvedenou níže.
5. Spusťte níže uvedený příkaz pro vstup do prostředí MariaDB (/bin/bash
).
sudo docker exec -it mariadbata /bin/bash
Výzva se změní z prostředí Ubuntu na prostředí MariaDB, jak je znázorněno níže.
Níže můžete vidět ID kontejneru (3a7fa779b559), které jste viděli v kroku tři. Zobrazení ID kontejneru ve výzvě znamená, že se aktuálně nacházíte v kontejneru mariadbata.
Když jste uvnitř kontejneru, můžete spouštět libovolné příkazy s předponou sudo, protože jste nyní uživatel root tohoto kontejneru.
Můžete například spustit příkaz apt update níže a aktualizovat databázi balíčků uvnitř kontejneru bez předpony sudo.
apt update -y
6. Nakonec spusťte exit
příkaz opustit prostředí MariaDB a vrátit se do hostitelského prostředí Ubuntu.
exit
Přístup k MariaDB Shell z hostitelského terminálu
Můžete také přistupovat k prostředí MariaDB přímo z hostitelského terminálu instalací klienta MariaDB na hostitele. To je užitečné v situacích, kdy nechcete pokaždé přepínat do prostředí kontejneru.
1. Spusťte apt install
příkaz níže k instalaci klienta MariaDB na hostitele Ubuntu.
sudo apt install -y mariadb-client
2. Dále spusťte docker inspect
příkaz níže k nalezení IP adresy spuštěného kontejneru.
sudo docker inspect container-name | grep IPAddress
3. Nyní spusťte mysql
příkaz níže pro připojení k instanci databáze z vašeho hostitele (-h
) s vaším uživatelským jménem (root
) a heslo (-p
). Nezapomeňte nahradit host_ip
s IP adresou vašeho spuštěného kontejneru Docker.
sudo mysql -u root -p -h host_ip
4. Zadejte heslo, které jste nastavili dříve (ata123 ) ve druhém kroku, když budete vyzváni, a zobrazí se vám výzva klienta MariaDB, jak je znázorněno níže.
Poté můžete spustit jakýkoli kód SQL, který potřebujete spustit na serveru MariaDB.
5. Nakonec spusťte ls
příkaz níže k zobrazení seznamu záložních souborů (opt/mariadb/backup
) kontejneru MariaDB.
ls -l opt/mariadb/backup
Níže uvidíte seznam podobných souborů. Výstup indikuje, že jste úspěšně vytvořili zálohu kontejneru mariadbata. V případě potřeby můžete soubory zkopírovat do jiného umístění na vašem hostiteli.
Zastavení a odebrání kontejneru
Možná budete chtít uvolnit RAM nebo CPU zdroje. Pokud ano, můžete kontejner zastavit spuštěním docker stop
a zadáním ID kontejneru nebo názvu kontejneru.
1. Spusťte některý z níže uvedených příkazů a zastavte konkrétní kontejner.
# Stops Container by Container Name (mariadbata)
sudo docker stop mariadbata
# Stops Container by Container ID (3a7fa779b559)
sudo docker stop 3a7fa779b559
V tomto okamžiku je kontejner zastaven, ale bude stále žít na vašem hostiteli a data zůstanou.
2. Nyní spusťte docker ps
příkaz níže k vypsání všech (-a
) kontejnery.
docker ps -a
Jak vidíte níže, kontejner se stále zobrazuje, ale je ve stavu Exited, což znamená, že kontejner je zastaven.
3. Nakonec spusťte níže uvedený příkaz k odstranění (rm
) zastavený kontejner (mariadbata
). Schopnost odstranit kontejner se hodí, když možná obraz Dockeru nesplňuje vaše požadavky nebo chcete začít znovu.
Upozorňujeme, že před odebráním kontejneru pomocí příkazu docker rm musíte kontejner nejprve zastavit.
sudo docker rm mariadbata
Pokud dáváte přednost odstranění celého kontejneru s jeho datovými objemy, abyste ušetřili své prostředky, přidejte volbu -v pomocí příkazu sudo docker, jako je ten níže.
sudo docker rm -v mariadbata
Nyní znovu spusťte níže uvedený příkaz docker ps a vypište všechny kontejnery, abyste ověřili, že je kontejner zcela odstraněn.
docker ps -a
Jak vidíte níže, mariadbata kontejner je pryč spolu se všemi svými daty.
Závěr
V tomto tutoriálu jste se naučili vytvořit kontejner MariaDB Docker na vašem hostitelském počítači Ubuntu. Také jste se naučili vytvářet trvalé úložiště pro kontejnery Docker pomocí kontejnerů datových svazků k zálohování dat kontejneru.
V tomto okamžiku můžete nyní vytvořit a spravovat svůj vlastní kontejner MariaDB Docker na Ubuntu.
Proč tedy nevybudovat pracovní postup Buddy CI/CD pomocí kontejneru MariaDB Cocker jako vaší databáze s těmito nově nalezenými znalostmi? Nebo dokonce vytvořit službu MariaDB pro své aplikace?