sql >> データベース >  >> NoSQL >> MongoDB

ssh経由で起動するときのDockerコンテナmongodエラー

    ここでの問題はあなたのアプローチです。 Dockerには、従来のシステムで使用されているようなinitシステムはありません。 dockerが行うことは、交換です。 CMDで指定したプロセスのPID1 または ENTRYPOINT Dockerfileコマンド。今のところ、ENTRYPOINTは無視してください 、CMDに置き換わるため (通常は/bin/sh -cで実行されます )。 CMDを使用してDockerfileでmongodサービスを開始するようにdockerに指示する必要があります 次のようなコマンド:

    CMD usr/bin/mongod

    そして、コンテナを実行すると、mongodがPID 1になります。さて、この時点でおそらく「しかし、私のSSHサーバーはどうですか?」答えは次のとおりです。DockerコンテナでSSHサーバーを実行しないでください。 SSHサーバーの実行は問題ないが、「通常の」理由(デバッグ、C&Cなど)のほとんどすべてが、コンテナーでシェルを取得するための「ベストプラクティス」によって無効にされるいくつかのユースケース:

    docker exec -it myContainer /bin/bash

    これにより、実行中のコンテナのシェルに移動します。 Dockerコンテナーの構成と変更を管理するためのここでの推奨事項は、Ansibleのようなものを使用することです。ただし、Dockerコンテナーは一時的なものであり、サービスを再起動したり、サービスの構成状態を変更したりしないでください。構成の変更が必要な場合は、Dockerfileまたは構成データを変更してから、新しいコンテナーを開始します。幸運を! こちら はMongoDBのDockerizingに関するもう少しの情報ですが、そこで説明されているメソッドはENTRYPOINTを変更することに注意してください。 Dockerfileで、これはもう少し複雑で、Dockerfileで何が起こっているのかをよりよく理解する必要があります。



    1. MongoError:ドライバーはこのサーバーバージョンと互換性がありません

    2. 可変日付で部分インデックスを作成するにはどうすればよいですか?

    3. データベースヘルスチェックの自動化

    4. node.jsでHerokuアドオンmongolabを使用する