sql >> Databasteknik >  >> NoSQL >> MongoDB

Docker container mongod fel vid start via ssh

Problemet här är ditt tillvägagångssätt. Docker har inte ett init-system som du är van vid på traditionella system. Vad docker gör är att ersätta PID 1 med den process du anger i CMD eller ENTRYPOINT Dockerfile-kommandon. För nu, ignorera ENTRYPOINT , eftersom det ersätter din CMD körs med (normalt är det /bin/sh -c ). Du måste instruera docker att starta din mongod-tjänst i din Dockerfile med CMD kommando, som:

CMD usr/bin/mongod

Och när du kör din container kommer mongod att vara din PID 1. Nu undrar du förmodligen vid det här laget "Men hur är det med min SSH-server?" och svaret är:Kör inte en SSH-server på dina dockercontainrar. Det finns vissa användningsfall där det är okej att köra en SSH-server, men nästan alla de "normala" orsakerna (felsökning, C&C, etc) upphävs med "bästa praxis" för att få ett skal på din behållare:

docker exec -it myContainer /bin/bash

Detta kommer att tappa dig i ett skal på din löpande behållare. Rekommendationen här för att hantera konfiguration och ändringar i din dockningsbehållare är att använda något som Ansible. Kom dock ihåg att docker-containrar är tillfälliga, och du bör inte starta om tjänster och ändra konfigurationstillstånd på dem. Om du behöver en konfigurationsändring ändrar du dockerfilen eller konfigurationsdatan och startar sedan en ny behållare. Lycka till! Här är lite mer information om Dockerizing MongoDB, men kom ihåg att metoden som beskrivs där ändrar ENTRYPOINT i Dockerfilen, som är lite mer involverad och kräver en bättre förståelse för vad som händer i Dockerfiles.



  1. Fel vid anslutning till MongoDb Atlas Server

  2. mongodb:hur kan jag se exekveringstiden för det samlade kommandot?

  3. Google Cloud Mongo DB:Extern IP ansluter inte

  4. Bästa MongoDB-schemat för twitter-klon?