sql >> Databáze >  >> NoSQL >> MongoDB

Chyba Docker container mongod při spouštění přes ssh

Tady je problém ve vašem přístupu. Docker nemá init systém, na jaký jste zvyklí na tradičních systémech. Docker dělá nahradit PID 1 s procesem, který zadáte v CMD nebo ENTRYPOINT Příkazy Dockerfile. Prozatím ignorujte ENTRYPOINT , protože nahrazuje to, co vaše CMD se spouští s (normálně je to /bin/sh -c ). Potřebujete instruovat docker, aby spustil vaši službu mongod ve vašem Dockerfile pomocí CMD příkaz, jako:

CMD usr/bin/mongod

A když spustíte svůj kontejner, mongod bude vaším PID 1. Nyní se pravděpodobně v tuto chvíli ptáte:"Ale co můj SSH server?" a odpověď zní:Nespouštějte server SSH na kontejnerech dokovacích stanic. jsou některé případy použití, kdy je spuštění serveru SSH v pořádku, ale téměř všechny "normální" důvody (ladění, C&C atd.) jsou zrušeny "nejlepším postupem" pro získání shellu na vašem kontejneru:

docker exec -it myContainer /bin/bash

Tím se dostanete do ulity na běžícím kontejneru. Zde je doporučení pro správu konfigurace a změn ve vašem kontejneru dockeru použít něco jako Ansible. Pamatujte však, že kontejnery dockerů jsou pomíjivé a neměli byste restartovat služby a měnit na nich stav konfigurace. Pokud potřebujete změnu konfigurace, změňte Dockerfile nebo konfigurační data a poté spusťte nový kontejner. Hodně štěstí! Zde je trochu více informací o Dockerizing MongoDB, ale mějte na paměti, že zde popsaná metoda mění ENTRYPOINT v Dockerfile, který je trochu více zapojený a vyžaduje lepší pochopení toho, co se děje v Dockerfiles.



  1. Připojení ke vzdálenému serveru mongoDB

  2. MongoDB Query s více podmínkami a řezem

  3. Hledání duplicitních hodnot v poli MongoDB

  4. Jak nastavit výchozí cestu dbpath pro mongoDB ve Windows 7?