DockerコンテナからMongoDBを公開する

DockerコンテナからMongoDBを公開する

Docker コンテナ内で実行されている mongodb を外部からアクセスできるように公開しようとしています。

docker compose または mongod.conf ファイルを使用してホスト バインディングを設定できるはずだとわかりましたが、公式の mongodb docker イメージを使用しているため、compose を実行しておらず、conf ファイルも見つかりません。

これまでに私がやったことと試したことは次のとおりです。

  1. ネットワークを作った

docker ネットワークで my-mongo-cluster を作成します

  1. 3つのmongo dbインスタンスを実行

mongo-node1 と mongo-node2 を docker run して、mongo-node3 と mongo-node3 を docker run して、 ...

  1. 最初に実行された

    docker exec -it mongo-node1 mongo

  2. レプリカセットの設定を行う

config = { "_id" : "rs0", "members" : [ { "_id" : 0, "host" : "mongo-node1:27017" }, { "_id" : 1, "host" : "mongo-node2:27017" }, { "_id" : 2, "host" : "mongo-node3:27017" } ] }

rs.initiate(config) rs.initialize

  1. 管理者ユーザーを作成しました

    admin db.createUser( { user: "admin", pwd: "admin", roles: [ { role: "userAdminAnyDatabase", db: "admin" }, >"readWriteAnyDatabase" ] } ) を使用します。

次のステートメントでコンテナを実行してみました。

--expose=27017
--auth

--entrypoint 'mongod --bind_ip_all'

-> エラーが発生します。

AWS 内で実行されており、27017 の受信ルールが正しく設定されています。

答えは常に次のとおりです:

couldn't connect to server ec2-52-59-191-1.eu-central-1.compute.amazonaws.com:27017, connection attempt failed: SocketException: Error connecting to ec2-52-59-191-1.eu-central-1.compute.amazonaws.com:27017 (52.59.191.1:27017) :: caused by :: No connection could be made because the target machine actively refused it. :

関連情報