Sådan kører du MongoDB via en Docker-container
MongoDB-Docker-containere er nemme at replikere og skalere. Hvis belastningen på databasen stiger, kan du starte yderligere MongoDB-containere. Dette sikrer, at databasens ydeevne forbliver stabil.
Kører MongoDB i en Docker-container?
MongoDB kan køre effektivt i en Docker-container. Der findes to typer MongoDB-images på Docker Hub: Community Edition og Enterprise Edition. Valget mellem disse to versioner afhænger af dine specifikke behov. Community Edition er som regel ideel til ikke-kommerciel brug eller mindre installationer. Enterprise Edition indeholder derimod ekstra funktioner og support til større applikationer eller virksomheder med avancerede behov, såsom kryptering, logføring og LDAP-integration.
Hvis de færdigkonfigurerede MongoDB-billeder på Docker Hub ikke fuldt ud opfylder dine behov, giver Docker dig mulighed for at oprette et brugerdefineret Docker-billede ved hjælp af en Dockerfile. Med en Dockerfile kan du vælge MongoDB-version, konfigurere specifikke indstillinger (f.eks. godkendelsesmetoder) og installere eventuelle yderligere værktøjer eller drivere, der er nødvendige for dit miljø.
Sådan bruger du MongoDB som en Docker-container trin for trin
Docker er kendt for sin letvægtsvirtualisering, der sikrer portabilitet og ensartethed på tværs af forskellige udviklings- og produktionsmiljøer. Nedenfor vil vi trin for trin vise dig, hvordan du opsætter MongoDB-containere i Docker. Til begyndere anbefaler vi, at du læser vores Docker-vejledning: Installation og første skridt, som giver en detaljeret introduktion til containerplatformen.
Trin 1: Download MongoDB-Docker-billedet
For at oprette en MongoDB-Docker-container skal vi først hente det relevante billede fra Docker Hub. Åbn din terminal eller kommandolinje, og kør følgende kommando:
docker pull mongo:latestbashHvis billedet allerede findes lokalt, vil Docker ikke downloade en ny version, medmindre du udtrykkeligt angiver den version, du ønsker at bruge (f.eks. mongo:4.4).
Trin 2: Start MongoDB-Docker-containeren
Når Docker-billedet til MongoDB er blevet downloadet, kan du starte en container baseret på dette billede:
docker run: Starter en ny Docker-container--name mongodb-container: Navngiver containeren ‘mongodb-container’-d: Brug denne parameter til at starte containeren i baggrunden (detached mode). Det betyder, at terminalen stadig kan bruges, mens containeren kører-p 27017:27017: Åbner MongoDB’s standardport 27017 på containeren på dit værtsystemmongo:latest: Giver instruktionen om at hente det seneste tilgængelige billede
Trin 3: Kontroller, at containeren kører
For at sikre, at containeren er blevet startet korrekt, skal du indtaste følgende kommando:
docker psbashDenne information giver et hurtigt overblik over de aktive MongoDB-Docker-containere på dit system, herunder hvor længe de har kørt, og hvilke porte de bruger. For yderligere oplysninger, f.eks. om stoppede containere eller specifikke filtreringsmuligheder, anbefales det at bruge kommandoen docker ps -a.
Trin 4: Opret en forbindelse til MongoDB i Docker-containeren
Nu kan du oprette forbindelse til MongoDB-instansen i din Docker-container. Det gør du ved at starte MongoDB Shell direkte i containeren:
docker exec: Udfører en kommando i den kørende container-it: Tillader interaktion med terminalen i containerenmongodb-container: Navnet på den konfigurerede MongoDB-containermongo: Starter MongoDB-shell
Når du har kørt denne kommando, bør du nu kunne se MongoDB-shell’en, der er klar til at modtage kommandoer. Du kan nu indtaste de sædvanlige MongoDB-kommandoer til at administrere eller søge i din database.
Trin 5: Udfør handlinger i MongoDB-shell
Du kan nu få vist alle eksisterende databaser på MongoDB-serveren på følgende måde:
show databasesbashUdskriften indeholder navnene på databaserne:
admin 0.000GB
local 0.000GB
test 0.000GBbashHvis du vil arbejde med en bestemt database i MongoDB-shell, skal du bruge følgende kommando:
use mydatabasebashBrug følgende kommando til at skifte til databasen med navnet »mydatabase«. Hvis databasen ikke findes, oprettes den automatisk, når der indsættes et dokument.
Du kan også hente dokumenter fra en bestemt samling:
db.users.find()bashMongoDB-shellen returnerer alle dokumenter, der er gemt i samlingen »users«.
{ "_id": ObjectId("609823e9f9a5f7f364fc3f90"), "username": "alice", "age": 28 }
{ "_id": ObjectId("609823f2f9a5f7f364fc3f91"), "username": "bob", "age": 32 }
{ "_id": ObjectId("609823f9f9a5f7f364fc3f92"), "username": "charlie", "age": 25 }bsonHvert dokument indeholder et unikt felt _id (MongoDB-specifik identifikator) samt andre felter, såsom username og age.
Du kan finde mere information om Docker-værktøjer og en præsentation af MongoDB, herunder en sammenligning med MySQL, i vores guide.