MongoDB je open-source NoSQL databáze využívající dokumenty a schémata typu JSON, které podporují rychlý iterativní vývoj. Jeho škálovatelná architektura je oblíbená u vývojářů aplikací, kteří používají agilní metodiky k rychlému pohybu. Jelikož je MongoDB v agilní komunitě populární, je používání MongoDB s Dockerem vynikajícím přístupem pro nepřetržitou integraci a vývoj (CI/CD).
Než začnete
Chcete-li dokončit příklady v této příručce, nejprve nastavte a zabezpečte Linode s nainstalovaným Dockerem. Můžete toho dosáhnout pomocí aplikace Docker Marketplace nebo ruční instalací. Pokyny pro oba přístupy jsou uvedeny níže.
Tato příručka předpokládá, že jste spokojeni s rozhraním příkazového řádku (CLI) na unixovém systému a jeho použití pro práci s programy.
Nastavit Linode pomocí Dockeru
Aplikace Docker Marketplace
Pomocí aplikace Docker Marketplace můžete rychle nastavit bezpečný a aktualizovaný Linode. Pokyny najdete v naší příručce Jak nasadit Docker s aplikacemi Marketplace. Pro účely této příručky doporučujeme nasadit aplikaci Docker Marketplace s možnostmi Docker:
- Omezený uživatel sudo, který má být vytvořen pro Linode
- Heslo pro omezeného uživatele sudo
- Omezený veřejný klíč uživatele sudo SSH, který bude použit pro přístup k Linode
- Zakázat přístup root přes SSH? (ano)
Ruční instalace
-
Seznamte se s naším průvodcem Začínáme a dokončete kroky pro aktualizaci vašeho Linode.
-
Dokončete části našeho Zabezpečení serveru a vytvořte standardní uživatelský účet, zpevněte přístup SSH a odstraňte nepotřebné síťové služby.
-
Nainstalujte Docker na svůj Linode podle kroků v naší příručce Jak nainstalovat a používat Docker na Ubuntu a Debianu.
Ověřte instalaci Dockeru
Ověřte, zda je na vašem Linode nainstalován Docker:
docker --version
Můžete očekávat výstup podobný následujícímu:
Docker version 20.10.8, build 3967b7d
PoznámkaTato příručka je napsána pro uživatele bez oprávnění root. Příkazy, které vyžadují zvýšená oprávnění, mají předponu
sudo
. Pokud neznátesudo
příkaz, navštivte naši příručku pro uživatele a skupiny.Všechny konfigurační soubory by měly být upravovány se zvýšenými oprávněními. Nezapomeňte zahrnout
sudo
před spuštěním textového editoru.
Jak nainstalovat MongoDB Docker Container
Docker velmi usnadňuje vytváření obrazu MongoDB, protože udržuje oficiálně udržovanou verzi v Docker Hub. Instalace:
-
Stáhněte a nainstalujte obraz MongoDB z Docker Hub:
sudo docker pull mongo
Výstup při stahování obrázků by měl vypadat takto:
Using default tag: latest latest: Pulling from library/mongo 16ec32c2132b: Pull complete 6335cf672677: Pull complete cbc70ccc8ebe: Pull complete 0d1a3c6bd417: Pull complete 960f3b9b27d3: Pull complete aff995a136b4: Pull complete 4249be7550a8: Pull complete cc105ff5aa3c: Pull complete 82819807d07a: Pull complete 81447d2c233f: Pull complete Digest: sha256:54d24682d00278f64bf21ff62b7ee62b59dae50f65139831a884b345922b0f8a Status: Downloaded newer image for mongo:latest docker.io/library/mongo:latest
Poznámka Tento příkaz ve výchozím nastavení stáhne nejnovější verzi (jak je uvedeno na prvním řádku výstupu). Chcete-li stáhnout konkrétní verzi, přidejte do příkazu značku pro tuto verzi. Chcete-li například nainstalovat MongoDB 4.4.6, zadejte
docker pull mongo:4.4.6
. -
Ujistěte se, že byl obraz nainstalován:
sudo docker images
Výstup by měl vypadat takto:
REPOSITORY TAG IMAGE ID CREATED SIZE mongo latest 07630e791de3 2 weeks ago 449MB
-
Vytvořte kontejner pomocí
mongo
obraz v odděleném režimu, takže je stále interaktivní ve vašem systému:sudo docker run --name mongo_example -d mongo
-
Ujistěte se, že kontejner běží:
sudo docker ps
Výstup by měl vypadat takto:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1f88d00b9e78 mongo "docker-entrypoint.s…" 4 seconds ago Up 4 seconds 27017/tcp mongo_example
MongoDB nyní běží jako Docker Container.
Jak se přihlásit do MongoDB v kontejneru
-
Chcete-li získat výzvu bash v kontejneru, zadejte následující:
sudo docker exec -it mongo_example bash
-
Na příkazovém řádku kontejneru zadejte
mongosh
shell:mongosh
Z mongosh
shell, můžete testovat dotazy a operace přímo s vaší databází.
Poznámka Staršímongo
shell byl v MongoDB v5.0 zastaralý, ale je stále dostupný jako alternativa kmongosh
.
Jak nakonfigurovat MongoDB v kontejneru Docker
Podrobnosti o konfiguraci MongoDB najdete v příručce MongoDB. Nicméně mongod
Příznaky (primární démon MongoDB) jsou obvykle nastaveny pro konfiguraci MongoDB a docker run
příkaz je navržen tak, aby předal mongod
příznaky.
Chcete-li například skriptovací stroj vypnout, přidejte příznak na konec příkazu takto:
sudo docker run --name mongo_example2 -d mongo --noscripting
Jako další příklad pro vypnutí skriptovacího jádra a zapnutí IPv6 zadejte následující:
sudo docker run --name mongo_example3 -d mongo --noscripting --ipv6
Jak uložit data MongoDB z kontejneru Docker
Vzhledem k tomu, že MongoDB běží na kontejneru Docker Container, jeho data se po ukončení neuchová (jelikož ukládá data do adresáře /data/db v kontejneru samotném). Pokud potřebujete, aby data MongoDB zůstala zachována, musíte vytvořit a připojit Docker Volume nebo připojit adresář ze svého hostitelského systému.
Přidání svazku dockeru do kontejneru MongoDB
Vytváření a přidávání svazku pro kontejner k použití je jednoduché, pokud znáte Docker.
-
Vytvořte ukotvitelný svazek pro data, na kterém budou uložena, zadáním následujícího:
sudo docker volume create mongo_volume
-
Poté vytvořte
docker run
příkaz k připojení svazku ke kontejneru a jeho mapování na/data/db
adresář kontejneru zadáním:sudo docker run -it -v mongo_volume:/data/db --name mongo_example4 -d mongo
Připojení hostitelského systémového adresáře v kontejneru MongoDB Docker Container
Pokud chcete, aby data zůstala zachována a abyste k nim měli přístup mimo Docker, můžete použít adresář ve svém hostitelském systému.
Chcete-li připojit adresář hostitelského systému:
-
Vytvořte adresář ve svém systému (pokud jej nemáte, který chcete použít) na kořenové úrovni systému zadáním:
sudo mkdir -p /mongo_data_directory
-
Poté spusťte
docker run
příkaz k připojení adresáře a jeho mapování na/data/db
zadáním:sudo docker run -it -v /mongo_data_directory:/data/db --name mongo_example5 -d mongo
Další čtení
Naučit se používat MongoDB na Dockeru je zásadní pro pracovní postupy CI/CD a rychlý iterativní vývoj. Pokračování v některých informacích Docker'sMongoDB na Docker Hub je vynikajícím doplňkem tohoto článku.
Chcete-li se dozvědět více o mongod
možnosti, které mají být předány při docker run
, projděte si mongod
Část Komponenty balíčku MongoDB v příručce MongoDB.
Pokud plánujete upgradovat na MongoDB Enterprise, pokyny naleznete v části Instalace MongoDB Enterprise pomocí Dockeru v příručce MongoDB mongod
.
Další informace
Další informace o tomto tématu můžete získat v následujících zdrojích. Přestože jsou poskytovány v naději, že budou užitečné, vezměte prosím na vědomí, že nemůžeme ručit za přesnost nebo aktuálnost externě hostovaných materiálů.
- MongoDB na Docker Hub