Docker コンテナ内で実行されている mongodb を外部からアクセスできるように公開しようとしています。
docker compose または mongod.conf ファイルを使用してホスト バインディングを設定できるはずだとわかりましたが、公式の mongodb docker イメージを使用しているため、compose を実行しておらず、conf ファイルも見つかりません。
これまでに私がやったことと試したことは次のとおりです。
- ネットワークを作った
docker ネットワークで my-mongo-cluster を作成します
- 3つのmongo dbインスタンスを実行
mongo-node1 と mongo-node2 を docker run して、mongo-node3 と mongo-node3 を docker run して、 ...
最初に実行された
docker exec -it mongo-node1 mongo
レプリカセットの設定を行う
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
管理者ユーザーを作成しました
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. :