sql >> Databáze >  >> RDS >> MariaDB

Oblíbené obrázky Docker pro server MySQL a MariaDB

Obraz Dockeru může vytvořit kdokoli, kdo má schopnost psát skript. To je důvod, proč existuje mnoho podobných obrázků, které vytváří komunita, s drobnými rozdíly, ale ve skutečnosti slouží společnému účelu. Dobrý (a oblíbený) obrázek kontejneru musí mít dobře napsanou dokumentaci s jasným vysvětlením, aktivně udržované úložiště a pravidelné aktualizace. Podívejte se na tento blogový příspěvek, pokud se chcete naučit, jak vytvořit a publikovat vlastní image Docker pro MySQL, nebo na tento blogový příspěvek, pokud se chcete naučit jen základy spouštění MySQL na Dockeru.

V tomto příspěvku na blogu se podíváme na některé z nejpopulárnějších obrázků Docker pro provozování našeho serveru MySQL nebo MariaDB. Obrázky, které jsme vybrali, jsou veřejné obrázky pro obecné účely, na kterých lze spustit alespoň službu MySQL. Některé z nich zahrnují nepodstatné aplikace související s MySQL, zatímco jiné slouží pouze jako obyčejná instance mysqld. Zde uvedený seznam je založen na výsledcích Docker Hub, největší světové knihovny a komunity pro obrázky kontejnerů.

TLDR

Následující tabulka shrnuje různé možnosti:

Aspekt MySQL (Docker) MariaDB (Docker) Percona (Docker) MySQL (Oracle) MySQL/MariaDB (CentOS) MariaDB (Bitnami)
Stahování 10 mil. 10 mil. 10 mil. 10 mil. 10 mil. 10 mil.
Docker Hub mysql mariadb percona mysql/mysql-server mysql-80-centos7
mysql-57-centos7
mysql-56-centos7
mysql-55-centos7
mariadb-102-centos7
mariadb-101-centos7
bitnami/mariadb
Stránka projektu mysql mariadb percona-docker mysql-docker mysql-container bitnami-docker-mariadb
Základní obrázek Debian 9 Ubuntu 18.04 (bionic)
Ubuntu 14.04 (důvěryhodné)
CentOS 7 Oracle Linux 7 RHEL 7
CentOS 7
Debian 9 (minideb)
Oracle Linux 7
Podporované verze databáze 5,5
5,6
5,7
8,0
5,5
10,0
10,1
10,2
10,3
10,4
5,6
5,7
8,0
5,5
5,6
5,7
8,0
5,5
5,6
5,7
8,0
10,1
10,2
10,1
10,2
10,3
Podporované platformy x86_64 x86
x86_64
arm64v8
ppc64le
x86
x86_64
x86_64 x86_64 x86_64
Velikost obrázku
(tag:nejnovější)
129 MB 120 MB 193 MB 99 MB 178 MB 87 MB
První potvrzení 18. května 2014 16. listopadu 2014 3. ledna 2016 18. května 2014 15. února 2015 17. května 2015
Přispěvatelé 18 9 15 14 30 20
Github Star 1267 292 113 320 89 152
Github Fork 1291 245 121 1291** 146 71

Převzato ze stránky Docker Hub.
Rozvětvené z projektu MySQL docker.

mysql (Docker)

Obrázky vytváří a udržuje komunita Docker s pomocí týmu MySQL. Lze jej považovat za nejoblíbenější veřejně dostupné obrázky serveru MySQL hostované na Docker Hub a za jeden z prvních na trhu (první potvrzení bylo 18. května 2014). Bylo rozvětveno ~1300krát s 18 aktivními přispěvateli. Podporuje verzi Docker až do 1.6 na základě maximálního úsilí. V současné době jsou podporovány všechny hlavní verze MySQL – 5.5, 5.6, 5.7 a 8.0 pouze na architektuře x86_64.

Většina obrazů MySQL vytvořených ostatními je inspirována způsobem, jakým byl tento obraz vytvořen. Obrázky MariaDB, Percona a MySQL Server (Oracle) sledují podobné proměnné prostředí, strukturu konfiguračního souboru a proces inicializace kontejneru.

Následující proměnné prostředí jsou k dispozici na většině obrazů kontejnerů MySQL na Docker Hub:

  • MYSQL_ROOT_PASSWORD
  • MYSQL_DATABASE
  • MYSQL_USER
  • MYSQL_PASSWORD
  • MYSQL_ALLOW_EMPTY_PASSWORD
  • MYSQL_RANDOM_ROOT_PASSWORD
  • MYSQL_ONETIME_PASSWORD

Velikost obrázku (tag:nejnovější) je průměrně malá (129 MB), snadno použitelná, dobře udržovaná a pravidelně aktualizována správcem. Pokud vaše aplikace vyžaduje nejnovější databázový kontejner MySQL, toto je nejvíce doporučený veřejný obrázek, který můžete použít.

mariadb (Docker)

Obrázky spravuje komunita Docker s pomocí týmu MariaDB. Používá stejný styl struktury budovy jako obrázek mysql (Docker), ale přichází s podporou více architektur:

  • Linux x86-64 (amd64)
  • 64bitová verze ARMv8 (arm64v8)
  • x86/i686 (i386)
  • IBM POWER8 (ppc64le)

V době psaní tohoto článku obrázky podporují MariaDB verze 5.5 až do 10.4, kde velikost obrázku s „nejnovějším“ tagem je kolem 120 MB. Tento obrázek slouží jako obecný obrázek a řídí se pokyny, proměnnými prostředí a strukturou konfiguračního souboru jako mysql (Docker). Většina aplikací, které vyžadovaly MySQL jako backend databáze, je běžně kompatibilní s MariaDB, protože obě používají stejný protokol.

Server MariaDB býval forkem MySQL, ale nyní byl od něj odkloněn. Pokud jde o návrh architektury databáze, některé verze MariaDB nejsou 100% kompatibilní a již nenahrazují jejich příslušné verze MySQL. Podrobnosti najdete na této stránce. Existují však způsoby, jak mezi sebou migrovat pomocí logického zálohování. Jednoduše řečeno, jakmile jste v ekosystému MariaDB, pravděpodobně se ho budete muset držet. Míchání nebo přepínání mezi MariaDB a MySQL v clusteru se nedoporučuje.

Pokud byste chtěli nastavit pokročilejší nastavení MariaDB (replikace, Galera, sharding), existují další obrázky vytvořené pro dosažení tohoto cíle mnohem snadněji, např. bitnami/mariadb, jak je vysvětleno níže.

percona (Docker)

Percona Server je fork MySQL vytvořený společností Percona. Toto jsou jediné oficiální obrázky Percona Server Docker, vytvořené a spravované týmem Percona. Podporuje architekturu x86 i x86_64 a obraz je založen na CentOS 7. Percona spravuje pouze nejnovější 3 hlavní verze MySQL pro obrazy kontejnerů – 5.6, 5.7 a 8.0.

Úložiště kódu poukazuje na to, že první potvrzení bylo 3. ledna 2016 s 15 aktivními přispěvateli většinou z vývojového týmu Percona. Percona Server pro MySQL je dodáván s úložným modulem XtraDB (náhrada za InnoDB) a velmi pozorně sleduje upstream verze Oracle MySQL (včetně všech oprav chyb v něm) s některými dalšími funkcemi, jako je úložný modul MyRocks, TokuDB a také Percona. vlastní opravy chyb. Svým způsobem si to můžete představit jako vylepšenou verzi Oracle MySQL. Můžete snadno přepínat mezi obrazy MySQL a Percona Server, pokud používáte kompatibilní verzi.

Obrázky rozpoznávají dvě další proměnné prostředí pro TokuDB a RocksDB pro MySQL (dostupné od verze 5.6):

  • INIT_TOKUDB – Nastavením na 1 umožníte spuštění kontejneru s povoleným úložištěm TOKUDB.
  • INIT_ROCKSDB – Nastavením na 1 umožníte spuštění kontejneru s povoleným úložištěm ROCKSDB.

mysql-server (Oracle)

Úložiště je vytvořeno z mysql týmem Docker. Obrazy jsou vytvářeny, udržovány a podporovány týmem MySQL v Oracle postaveném na základním obrazu Oracle Linux 7. Obraz MySQL 8.0 je dodáván s MySQL Community Server (minimální) a MySQL Shell a server je nakonfigurován tak, aby zpřístupnil protokol X na portu 33060 z minimálního úložiště. Minimální balíček byl navržen pro použití oficiálními obrazy Docker pro MySQL. Odstraňuje některé nepodstatné části MySQL, jako je innochecksum, myisampack, mysql_plugin, ale jinak jde o stejný produkt. Proto má velmi malou obrazovou stopu, která je kolem 99 MB.

Jedním důležitým bodem, který je třeba poznamenat, je, že obrázky mají vestavěný skript kontroly stavu, který je velmi užitečný pro některé lidi, kteří potřebují přesnou logiku dostupnosti. V opačném případě musí lidé napsat vlastní příkaz (nebo skript) HEALTHCHECK pro Docker, aby zkontrolovali stav kontejneru.

mysql-xx-centos7 &mariadb-xx-centos7 (CentOS)

Obrazy kontejnerů vytváří a spravuje tým CentOS, který zahrnuje databázový server MySQL pro OpenShift a obecné použití. Pro obrázky založené na RHEL je můžete stáhnout z katalogu kontejnerů Red Hat, zatímco obrázky založené na CentOS jsou hostovány veřejně na Docker Hub na různých stránkách pro každou hlavní verzi (uveďte pouze obrázky s více než 10 miliony stažení):

  • MySQL 8.0:https://hub.docker.com/r/centos/mysql-80-centos7
  • MySQL 5.7:https://hub.docker.com/r/centos/mysql-57-centos7
  • MySQL 5.6:https://hub.docker.com/r/centos/mysql-56-centos7
  • MySQL 5.5:https://hub.docker.com/r/centos/mysql-55-centos7
  • MariaDB 10.2:https://hub.docker.com/r/centos/mariadb-102-centos7
  • MariaDB 10.1:https://hub.docker.com/r/centos/mariadb-101-centos7

Struktura obrázku je trochu jiná a nepoužívá image tag jako ostatní, takže název obrázku je o něco delší. Přesto musíte přejít na správnou stránku Docker Hub, abyste získali hlavní verzi, kterou chcete stáhnout.

Podle stránky úložiště kódu na projektu od 15. února 2015 spolupracovalo 30 přispěvatelů. Podporuje MySQL 5.5 až do 8.0 a MariaDB 5.5 až 10.2 pouze pro architekturu x86_64. Pokud silně spoléháte na kontejnerizační infrastrukturu Red Hat, jako je OpenShift, jedná se pravděpodobně o nejoblíbenější nebo nejlépe udržované obrázky pro MySQL a MariaDB.

Následující proměnné prostředí ovlivňují konfigurační soubor MySQL/MariaDB a všechny jsou volitelné:

  • MYSQL_LOWER_CASE_TABLE_NAMES (výchozí:0)
  • MYSQL_MAX_CONNECTIONS (výchozí:151)
  • MYSQL_MAX_ALLOWED_PACKET (výchozí:200 M)
  • MYSQL_FT_MIN_WORD_LEN (výchozí:4)
  • MYSQL_FT_MAX_WORD_LEN (výchozí:20)
  • MYSQL_AIO (výchozí:1)
  • MYSQL_TABLE_OPEN_CACHE (výchozí:400)
  • MYSQL_KEY_BUFFER_SIZE (výchozí:32 milionů nebo 10 % dostupné paměti)
  • MYSQL_SORT_BUFFER_SIZE (výchozí:256 kB)
  • MYSQL_READ_BUFFER_SIZE (výchozí:8 M nebo 5 % dostupné paměti)
  • MYSQL_INNODB_BUFFER_POOL_SIZE (výchozí:32 M nebo 50 % dostupné paměti)
  • MYSQL_INNODB_LOG_FILE_SIZE (výchozí:8 M nebo 15 % dostupné paměti)
  • MYSQL_INNODB_LOG_BUFFER_SIZE (výchozí:8 M nebo 15 % dostupné paměti)
  • MYSQL_DEFAULTS_FILE (výchozí:/etc/my.cnf)
  • MYSQL_BINLOG_FORMAT (výchozí:příkaz)
  • MYSQL_LOG_QUERIES_ENABLED (výchozí:0)

Obrazy podporují automatické ladění MySQL, když je obraz MySQL spuštěn se sadou parametrů --memory a pokud jste nezadali hodnotu pro následující parametry, jejich hodnoty budou automaticky vypočteny na základě dostupné paměti:

  • MYSQL_KEY_BUFFER_SIZE (výchozí:10 %)
  • MYSQL_READ_BUFFER_SIZE (výchozí:5 %)
  • MYSQL_INNODB_BUFFER_POOL_SIZE (výchozí:50 %)
  • MYSQL_INNODB_LOG_FILE_SIZE (výchozí:15 %)
  • MYSQL_INNODB_LOG_BUFFER_SIZE (výchozí:15 %)
Několik nines DevOps Průvodce správou databázíZjistěte, co potřebujete vědět k automatizaci a správě vašich databází s otevřeným zdrojovým kódemStáhněte si zdarma

bitnami/mariadb

Obrazy vytváří a udržuje Bitnami, odborníci na softwarové balení ve virtuálním nebo cloudovém nasazení. Obrazy jsou vydávány denně s nejnovějšími dostupnými distribučními balíčky a používají minimalistický obraz založený na Debianu s názvem minideb. Velikost obrázku pro nejnovější značku je tedy nejmenší ze všech, která se pohybuje kolem 87 MB. Projekt má 20 přispěvatelů, přičemž k prvnímu odevzdání došlo 17. května 2015. V současné době podporuje MariaDB 10.1 pouze do 10.3.

Jednou z vynikajících vlastností tohoto obrázku je schopnost nasadit vysoce dostupné nastavení MariaDB prostřednictvím proměnných prostředí Docker. Replikační cluster MariaDB master-slave s nulovými prostoji lze snadno nastavit pomocí bitové kopie Bitnami MariaDB Docker pomocí následujících proměnných prostředí:

  • MARIADB_REPLICATION_MODE:Režim replikace. Možné hodnoty master/slave. Žádné výchozí hodnoty.
  • MARIADB_REPLICATION_USER:Uživatel replikace vytvořený na hlavním serveru při prvním spuštění. Žádné výchozí hodnoty.
  • MARIADB_REPLICATION_PASSWORD:Heslo uživatele replikace. Žádné výchozí hodnoty.
  • MARIADB_MASTER_HOST:Název hostitele/IP hlavního serveru replikace (parametr slave). Žádné výchozí hodnoty.
  • MARIADB_MASTER_PORT_NUMBER:Serverový port hlavního replikačního serveru (parametr slave). Výchozí hodnota je 3306.
  • MARIADB_MASTER_ROOT_USER:Uživatel na hlavním replikačním serveru s přístupem k MARIADB_DATABASE (parametr slave). Výchozí je root
  • MARIADB_MASTER_ROOT_PASSWORD:Heslo uživatele na hlavním replikačním serveru s přístupem k
  • MARIADB_DATABASE (parametr slave). Žádné výchozí hodnoty.

V replikačním klastru můžete mít jednoho hlavního a nula nebo více podřízených. Když je replikace povolena, hlavní uzel je v režimu čtení i zápisu, zatímco podřízené uzel jsou v režimu pouze pro čtení. Pro nejlepší výkon je vhodné omezit čtení na podřízené jednotky.

Kromě toho tyto obrázky také podporují nasazení na Kubernetes jako Helm Charts. Více o instalačních krocích si můžete přečíst v úložišti Bitnami MariaDB Chart GitHub.

Závěry

Existuje spousta obrazů serverů MySQL, které přispěla komunita, a nemůžeme je zde všechny pokrýt. Mějte na paměti, že tyto obrázky jsou oblíbené, protože jsou vytvořeny pro všeobecné použití. Některé méně oblíbené obrázky umí mnohem pokročilejší věci, jako je orchestrace databázových kontejnerů, automatické bootstrapping a automatické škálování. Různé obrázky poskytují různé přístupy, které lze použít k řešení jiných problémů.


  1. Jak mohu vyřešit problém fondu připojení mezi ASP.NET a SQL Server?

  2. java.lang.IllegalArgumentException:sloupec '_id' neexistuje

  3. Jak zkontrolovat zastaralé statistiky

  4. Jak zálohovat RAC VM