sql >> Database teknologi >  >> NoSQL >> MongoDB

Docker container mongod fejl ved start via ssh

Problemet her er din tilgang. Docker har ikke et init-system, som du er vant til på traditionelle systemer. Hvad docker gør, er at erstate PID 1 med den proces, du angiver i CMD eller ENTRYPOINT Dockerfile kommandoer. Indtil videre skal du ignorere ENTRYPOINT , fordi den erstatter din CMD køres med (normalt er det /bin/sh -c ). Du skal instruere docker til at starte din mongod-tjeneste i din Dockerfile med CMD kommando, som:

CMD usr/bin/mongod

Og når du kører din container, vil mongod være din PID 1. Nu spekulerer du sikkert på på dette tidspunkt "Men hvad med min SSH-server?" og svaret er:Kør ikke en SSH-server på dine docker-containere. Der er nogle tilfælde, hvor det er okay at køre en SSH-server, men næsten alle de "normale" årsager (fejlretning, C&C osv.) er annulleret med "bedste praksis" for at få en shell på din container:

docker exec -it myContainer /bin/bash

Dette vil falde dig ned i en skal på din løbebeholder. Anbefalingen her til at administrere konfiguration og ændringer i din docker-container er at bruge noget som Ansible. Husk dog, at docker-containere er flygtige, og du bør ikke genstarte tjenester og ændre konfigurationstilstand på dem. Hvis du har brug for en konfigurationsændring, skal du ændre Dockerfilen eller konfigurationsdataene og derefter starte en ny container. Held og lykke! Her er lidt mere information om Dockerizing MongoDB, men husk at metoden beskrevet der ændrer ENTRYPOINT i Dockerfilen, som er lidt mere involveret og kræver en bedre forståelse af, hvad der foregår i Dockerfiles.



  1. Langsomt områdeforespørgsel på et multinøgleindeks

  2. Fejlfinding mongo ikke fundet, og php_mongo.dll er ikke en win32-applikationsfejl

  3. Kan en $text-søgning udføre et delvist match

  4. Kan ikke oprette forbindelse til mongodb-serveren, mens du bruger NodeJS