Slik kjører du MongoDB via en Docker-container
MongoDB-Docker-containere er enkle å replikere og skalere. Hvis belastningen på databasen øker, kan du starte flere MongoDB-containere. Dette sikrer at databasens ytelse forblir stabil.
Kan MongoDB kjøres i en Docker-container?
MongoDB kan kjøre effektivt i en Docker-container. Det finnes to typer MongoDB-bilder på Docker Hub: Community Edition og Enterprise Edition. Valget mellom disse to versjonene avhenger av dine spesifikke behov. Community Edition er vanligvis ideell for ikke-kommersiell bruk eller mindre oppsett. Enterprise Edition inkluderer derimot ekstra funksjoner og støtte for større applikasjoner eller bedrifter med avanserte behov, som kryptering, revisjon og LDAP-integrasjon.
Hvis de forhåndsbygde MongoDB-bildene på Docker Hub ikke dekker alle dine behov, gir Docker deg muligheten til å lage et tilpasset Docker-bilde ved hjelp av en Dockerfile. Med en Dockerfile kan du velge MongoDB-versjon, konfigurere bestemte innstillinger (som autentiseringsmetoder) og installere eventuelle tilleggsverktøy eller drivere som kreves for ditt miljø.
Trinnvis veiledning i hvordan du bruker MongoDB som en Docker-container
Docker er kjent for sin lette virtualisering, som sikrer portabilitet og konsistens på tvers av ulike utviklings- og produksjonsmiljøer. Nedenfor vil vi veilede deg trinn for trinn gjennom hvordan du konfigurerer MongoDB-containere i Docker. For nybegynnere anbefaler vi å ta en titt på vår Docker-veiledning: Installasjon og første skritt, som gir en detaljert innføring i containerplattformen.
Trinn 1: Last ned MongoDB-Docker-bildet
For å opprette en MongoDB-Docker-container må vi først hente det aktuelle bildet fra Docker Hub. Åpne terminalen eller kommandolinjen og kjør følgende kommando:
docker pull mongo:latestbashHvis bildet allerede finnes lokalt, vil Docker ikke laste ned en ny versjon med mindre du uttrykkelig angir hvilken versjon du ønsker å bruke (for eksempel mongo:4.4).
Trinn 2: Start MongoDB-Docker-containeren
Når Docker-bildet for MongoDB er lastet ned, kan du starte en container basert på dette bildet:
docker run: Starter en ny Docker-container--name mongodb-container: Gir containeren navnet «mongodb-container»-d: Bruk denne parameteren for å starte containeren i bakgrunnen (detached mode). Dette betyr at terminalen fortsatt kan brukes mens containeren kjører-p 27017:27017: Åpner MongoDBs standardport 27017 for containeren på vertsystemet dittmongo:latest: Gir instruksjon om å hente det nyeste tilgjengelige bildet
Trinn 3: Kontroller at containeren kjører
For å forsikre deg om at containeren er startet opp, skriver du inn følgende kommando:
docker psbashDenne informasjonen gir en rask oversikt over de aktive MongoDB-Docker-containerne på systemet ditt, inkludert hvor lenge de har vært i gang og hvilke porter de bruker. For mer detaljer, for eksempel om stoppede containere eller spesifikke filtreringsalternativer, anbefales det å bruke kommandoen docker ps -a.
Trinn 4: Opprett en tilkobling til MongoDB i Docker-containeren
Nå kan du opprette en forbindelse til MongoDB-instansen i Docker-containeren din. For å gjøre dette starter du MongoDB Shell direkte i containeren:
docker exec: Utfører en kommando i den aktive containeren-it: Tillater interaksjon med terminalen i containerenmongodb-container: Navnet på den konfigurerte MongoDB-beholderenmongo: Starter MongoDB-skallet
Når du har kjørt denne kommandoen, bør du se at MongoDB-skallet er klart til å motta kommandoer. Du kan nå skrive inn de vanlige MongoDB-kommandoene for å administrere eller søke i databasen din.
Trinn 5: Utfør operasjoner i MongoDB-skallet
Du kan nå vise alle eksisterende databaser på MongoDB-serveren på følgende måte:
show databasesbashUtdataene inneholder navnene på databasene:
admin 0.000GB
local 0.000GB
test 0.000GBbashFor å arbeide med en bestemt database i MongoDB-skallet, bruk følgende kommando:
use mydatabasebashBruk følgende kommando for å bytte til databasen med navnet «mydatabase». Hvis databasen ikke finnes, opprettes den automatisk når et dokument legges inn.
Du kan også hente dokumenter fra en bestemt samling:
db.users.find()bashMongoDB-skallet returnerer alle dokumenter som er lagret 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 inneholder et unikt felt _id (MongoDB-spesifikk identifikator) og andre felt, som for eksempel username og age.
Du finner mer informasjon om Docker-verktøy og en presentasjon av MongoDB, inkludert en sammenligning med MySQL, i vår guide.