Tento výukový program vás provede tím, jak spustit PostgreSQL s trvalým úložištěm v kontejneru Docker a jak se k němu připojit.
PostgreSQL je open source, objektově relační systém pro správu databází. Existuje již více než 30 let a propaguje se jako „nejpokročilejší open-source relační databáze na světě.“
Docker se stal standardem v IT průmyslu pro snadné balení, nasazování a spouštění distribuovaných aplikací. Kontejnery Docker vám umožňují rychle spustit nové aplikace, aniž by byl váš systém zahlcen závislostmi.
Docker můžete použít ke spuštění databáze PostgreSQL v kontejneru jako vzdálený server. Kontejnery Docker jsou založeny na otevřených standardech, které umožňují běh kontejnerů ve všech hlavních distribucích Linuxu, macOS a Microsoft Windows.
Spustit PostgreSQL v Dockeru
Zde si stáhneme obraz PostgreSQL, zkontrolujeme, zda je obraz připraven, spustíme obraz se specifickými parametry a nakonec se připojíme k běžící instanci PostgreSQL.
1. Stáhněte obrázek PostgreSQL Server Docker
Nejprve potřebujeme získat existující oficiální image PostgreSQL z Docker Hub. Obrázky jsou dostupné pro PostgreSQL verze 9, 10, 11, 12 a 13. Změňte latest
tag na požadovanou verzi, pokud potřebujete konkrétní vydání.
Nyní vytáhneme obrázek:
sudo docker pull postgres:latest
Pomocí výše uvedeného příkazu stáhnete nejnovější dostupnou verzi PostgreSQL z úložiště Docker Hub.
2. Spusťte kontejner z PostgreSQL Server Docker Image
Před nasazením budete muset nastavit svazek Docker nebo připojení k připojení, aby vaše databáze zůstala zachována. V opačném případě budou vaše data po restartování kontejneru ztracena. Připojení by mělo být provedeno do /var/lib/postgresql/data
adresář v kontejneru.
Vytvoříme svazek dockeru pro tuto příručku a připojíme jej k vašemu kontejneru PostgreSQL.
Následující příkaz vytvoří svazek na vašem místním počítači, který můžete později připojit ke kontejneru PostgreSQL:
sudo docker volume create postgres-volume
Nyní, když máte na svém počítači obraz PostgreSQL a svazek pro uložení dat, můžete nasadit kontejner s:
sudo docker run -d --name=postgres13 -p 5432:5432 -v postgres-volume:/var/lib/postgresql/data -e POSTGRES_PASSWORD=[your_password] postgres
Příkaz docker run vytvoří běžící databázi PostgreSQL v kontejneru Docker.
Pojďme si 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, aby jej spouštěl na pozadí.--name
přiřadí názevpostgres13
do vaší instance kontejneru.-p
sváže kontejnerový port PostgreSQL 5432 se stejným portem na vašem hostitelském počítači. Budete se moci připojit klocalhost:5432
pomocí klientů PostgreSQL (psql
) běžící na vašem hostiteli.-v
možnost svázat tuto datovou složku uvnitř svazku kontejneru (/var/lib/postgresql
) na místní svazek Dockeru (postgres-volume
), který jste vytvořili v předchozím kroku.-e
nastavuje proměnnou prostředí. V tomto případě kořenové heslo PostgreSQL.postgres
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
6cb3293fe725 postgres "docker-entrypoint.s…" 19 minutes ago Up 19 minutes 0.0.0.0:5432->5432/tcp, :::5432->5432/tcp postgres13
Gratulujeme! Vaše nová instance PostgreSQL nyní běží na Dockeru.
Kromě toho můžete zkontrolovat soubor protokolu běžícího kontejneru PostgreSQL pomocí následujícího příkazu:
sudo docker logs postgres13
3. Připojte se k serveru PostgreSQL
Interaktivní shell PostgreSQL můžete získat připojením ke kontejneru a spuštěním psql
příkaz. To poskytuje plné rozhraní příkazového řádku PostgreSQL pro použití všech známých příkazů a příznaků.
sudo docker exec -it postgres13 psql -U postgres
Můžete se také připojit k instanci PostgreSQL Docker pomocí psql
Klient PostgreSQL, pokud jej máte na svém hostiteli předinstalovaný.
psql -h localhost -U postgres
Závěr
Jedním z nejvýznamnějších případů použití Dockeru je snadné vytváření aplikací zabudovaných v kontejnerech a přístup k nim bez obav ze závislostí a instalací.
V tomto tutoriálu jsme se dozvěděli o nastavení serveru PostgreSQL pomocí Dockeru namísto skutečného hostitelského počítače.
S architekturou mikroslužeb, kde různé mikroslužby spoléhají na své databáze, se nasazování serverů PostgreSQL jako kontejnerů Docker stalo běžným.
Je také široce používán pro místní provádění nebo end-to-end integrační testy v izolovaném prostředí.
Pokud máte nějaké dotazy nebo návrhy, dejte mi vědět a já se s vámi rád spojím.