Sett opp en MongoDB -server med Docker

Sett opp en MongoDB -server med Docker
I denne artikkelen skal jeg vise deg hvordan du bruker Docker-komponering for å lage en MongoDB-beholder og få tilgang til den ved hjelp av Mongo Express, det nettbaserte MongoDB Admin-grensesnittet. Så la oss komme i gang.

Krav:

For å følge denne artikkelen, må du ha Docker installert på datamaskinen din. Linuxhint har mange artikler som du kan følge for å installere Docker på ønsket Linux -distribusjon hvis du ikke har den installert allerede. Så husk å sjekke Linuxhint.com i tilfelle du har problemer med å installere docker.

Installere Docker Compose:

For å installere Docker -komponering, åpner du en terminal og kjører følgende kommando:

$ sudo curl -l "https: // github.com/docker/kompose/utgivelser/nedlasting/1.24.1/
Docker-Compose-$ (Uname -s)-$ (Uname -m) "-o/usr/local/bin/docker-compose

Curl bør begynne å laste ned Docker Compose Binary. Det kan ta en stund å fullføre.

Når nedlastingen er fullført, kan du legge til kjørbar tillatelse til Docker-Compose Binærfil med følgende kommando:

$ sudo chmod +x/usr/local/bin/docker-compose

Nå, sjekk om Docker-Compose Binær er tilgjengelig med følgende kommando:

$ Docker-Compose-Versjon

Som du kan se, Docker-Compose binær fungerer riktig.

Sette opp MongoDB -server ved hjelp av Docker Compose:

I denne delen vil jeg vise deg et veldig grunnleggende MongoDB og Mongo Express -oppsett ved hjelp av Docker Composer.

Opprett først en ny prosjektkatalog Mongo-Latest/ følgende:

$ Mkdir Mongo-Latest

Naviger nå til Mongo-Latest/ Katalog som følger:

$ CD Mongo-Latest/

Lag nå en ny Docker -komponeringskonfigurasjonsfil Docker-Compose.yml følgende:

$ Nano Docker-Compose.yml

Skriv inn følgende koder i filen følgende linjer i filen Docker-Compose.yml.

Versjon: '3'
tjenester:
Mongo:
Bilde: Mongo
Start på nytt: Alltid
Porter:
- "27017: 27017"
Mongo-Express:
Bilde: Mongo-Express
Start på nytt: Alltid
Porter:
- "8081: 8081"

Her definerer vi to tjenester, Mongo og Mongo-Express. De Mongo Tjenesten er ansvarlig for å starte Mongo (Bilde) Docker Container. De Mongo Docker Container Port 27017 blir videresendt til havnen 27017 På Docker -verten din. De Mongo-Express Tjenesten er ansvarlig for å starte Mongo-Express (Bilde) Docker Container. På samme måte, port 8081 blir videresendt til port 8081 på Docker -verten.

Begge tjenestene er satt til å starte på nytt (Start på nytt: Alltid) ved fiasko.

Lagre filen nå ved å trykke på + X etterfulgt av Y og .

Nå, for å starte MongoDB og Mongo Express -tjenester, kjører du følgende kommando:

$ docker -compose up -d

Hvis du kjører denne kommandoen for første gang, kan det ta en stund å starte tjenestene da Docker -bildene vil bli lastet ned fra Docker Hub.

Tjenestene skal starte.

Nå, fra en nettleser, besøk http: // localhost: 8081 og Mongo Express webgrensesnittet skal vises som du kan se på skjermbildet nedenfor. Herfra kan du administrere MongoDB -databaser, legge til data i databasen og mange flere.

Sette opp MongoDB -databasepassord:

Hvis du vil sette opp et MongoDB -databasepassord, er denne delen for deg.

Først må du stoppe MongoDB og Mongo Express -tjenester som følger:

$ Docker-Compose Down

Rediger nå Docker-Compose.yml fil som følger:

$ Nano Docker-Compose.yml

Legg nå den markerte teksten (fet) nedenfor i konfigurasjonsfilen Docker-Compose.yml.

Versjon: '3'
tjenester:
Mongo:
Bilde: Mongo
Start på nytt: Alltid
Porter:
- "27017: 27017"
miljø:
Mongo_initdb_root_usname: root
Mongo_initdb_root_password: hemmelighet
Mongo-Express:
Bilde: Mongo-Express
Start på nytt: Alltid
Porter:
- "8081: 8081"
miljø:
ME_CONFIG_MONGODB_ADMINUSERNAME: ROOT
Me_config_mongodb_adminpassword: hemmelighet

De Mongo_initdb_root_usname: root og Mongo_initdb_root_password: hemmelighet i Mongo Serviceseksjonen brukes til å angi MongoDB -brukernavn rot og passord hemmelig.

De ME_CONFIG_MONGODB_ADMINUSERNAME: ROOT og Me_config_mongodb_adminpassword: hemmelighet i Mongo-Express Serviceseksjonen brukes til å fortelle Mongo Express å bruke brukernavnet rot og passord hemmelig For å koble til MongoDB -serveren.

Endelig konfigurasjonsfil.

Start nå tjenestene som følger:

$ docker -compose up -d

Som du kan se, kan jeg fremdeles få tilgang til Mongo Express Web -grensesnittet.

Jeg endret Mongo-Express passord til noe annet enn hemmelig, Og som du kan se, klarte jeg ikke å koble meg til MongoDB -serveren. Så alt fungerer som forventet.

Lagre MongoDB -data ved bruk av volum:

Som standard lagrer ikke mongoDB -beholderen noen data. Hvis du vil at MongoDB -databasedataene skal vedvare, må du bruke Docker Volumes. Jeg vil vise deg hvordan i denne delen.

Først må du stoppe tjenestene som følger:

$ Docker-Compose Down

Legg nå den markerte (fet) delen til Docker-Compose.yml fil.

Versjon: '3'
tjenester:
Mongo:
Bilde: Mongo
Start på nytt: Alltid
Porter:
- "27017: 27017"
miljø:
Mongo_initdb_root_usname: root
Mongo_initdb_root_password: hemmelighet
Volum:
- mongo-data:/data/db
Mongo-Express:
Bilde: Mongo-Express
Start på nytt: Alltid
Porter:
- "8081: 8081"
miljø:
ME_CONFIG_MONGODB_ADMINUSERNAME: ROOT
Me_config_mongodb_adminpassword: hemmelighet
Volum:
Mongo-data:

Her definerte jeg et nytt navngitt bind Mongo-data som lagrer dataene fra banen /data/db av Mongo container.

Endelig konfigurasjonsfil.

Start nå tjenestene som følger:

$ docker -compose up -d

Som du kan se, fungerer Mongo Express web -grensesnittet riktig.

Jeg opprettet en ny database MYDB.

Nå må du starte tjenestene på nytt som følger:

$ Docker-Compose Restart

Som du kan se, selv etter å ha startet på nytt Mongo (Mongodb) og Mongo-Express (Mongo Express) tjenester MYDB Databasen er fremdeles tilgjengelig. Så det fungerte.

Endre mongoDB containernavn:

Som standard skal MongoDB -databasetjenestenavnet være Mongo For at Mongo Express skal jobbe. Men hvis du vil endre databasetjenestenavnet til noe annet som Mongodb-server, Da må du fortelle Mongo-Express service som du har endret Mongo Tjenestenavn til noe annet.

Først må du stoppe tjenestene som følger:

$ Docker-Compose Down

Nå, endre/legg til den markerte teksten i Docker-Compose.yml konfigurasjonsfil.

Versjon: '3'
tjenester:
Mongodb-server:
Bilde: Mongo
Start på nytt: Alltid
Porter:
- "27017: 27017"
miljø:
Mongo_initdb_root_usname: root
Mongo_initdb_root_password: hemmelighet
Volum:
- mongo-data:/data/db
Mongo-Express:
Bilde: Mongo-Express
Start på nytt: Alltid
Porter:
- "8081: 8081"
miljø:
ME_CONFIG_MONGODB_ADMINUSERNAME: ROOT
Me_config_mongodb_adminpassword: hemmelighet
Me_config_mongodb_server: mongodb-server
Volum:
Mongo-data:

Her, Me_config_mongodb_server: mongodb-server brukes til å fortelle Mongo-Express service som Mongo Tjenestenavnet endres til Mongodb-server.

Den endelige konfigurasjonsfilen.

Start nå tjenestene som følger:

$ docker -compose up -d

Som du kan se, fungerer Mongo Express webgrensesnittet fortsatt.

Angi Mongo Express Access -passord:

Som standard ber ikke Mongo Express Admin -grensesnittet deg om innloggingsinformasjon. Men hvis du vil sette opp et brukernavn og passordgodkjenningsmetode, er denne delen for deg.

Først må du stoppe tjenestene som følger:

$ Docker-Compose Down

Legg nå den markerte (fet) teksten til Docker-Compose.yml konfigurasjonsfil.

Versjon: '3'
tjenester:
Mongo:
Bilde: Mongo
Start på nytt: Alltid
Porter:
- "27017: 27017"
miljø:
Mongo_initdb_root_usname: root
Mongo_initdb_root_password: hemmelighet
Volum:
- mongo-data:/data/db
Mongo-Express:
Bilde: Mongo-Express
Start på nytt: Alltid
Porter:
- "8081: 8081"
miljø:
ME_CONFIG_MONGODB_ADMINUSERNAME: ROOT
Me_config_mongodb_adminpassword: hemmelighet
Me_config_basicauth_usname: admin
Me_config_basicauth_password: hemmelighet
Volum:
Mongo-data:

Her, Me_config_basicauth_usname: admin og Me_config_basicauth_password: hemmelighet brukes til å fortelle Mongo-Express Tjeneste for å bruke brukernavnet admin og passordet hemmelig for autentisering.

Endelig konfigurasjonsfil.

Start nå tjenestene som følger:

$ docker -compose up -d

Hvis du prøver å besøke Mongo Express -siden, blir du bedt om å autentisere ved hjelp av brukernavnet og passordet ditt.

Hvis du oppgir riktig brukernavn og passord, vil du få lov til å bruke Mongo Express til å administrere MongoDB -databasen din.

Referanser:

For mer informasjon, sjekk følgende lenker:
[1] Offisiell Docker Hub Page of Mongo
[2] Offisiell Docker Hub-side av Mongo-Express

Så det er slik du setter opp en MongoDB -server ved hjelp av Docker. Takk for at du leste denne artikkelen.