从 Docker 容器中公开 MongoDB

从 Docker 容器中公开 MongoDB

我正在尝试将在 docker 容器中运行的 mongodb 公开以便从外部访问。

我发现它应该能够使用 docker compose 或 mongod.conf 文件在那里设置主机绑定,但是由于我使用官方 mongodb docker 镜像,所以我没有进行组合,而且我也找不到 conf 文件。

以下是我所做的以及迄今为止尝试过的方法:

  1. 创建了一个网络

docker 网络创建 my-mongo-cluster

  1. 运行 3 个 mongo db 实例

docker run --name mongo-node1 -d --net my-mongo-cluster mongo --replSet "rs0" docker run --name mongo-node2 -d --net my-mongo-cluster mongo --replSet "rs0" docker run --name mongo-node3 -d --net my-mongo-cluster mongo --replSet "rs0"

  1. 执行第一个

    docker exec -it mongo-node1 mongo

  2. 设置副本集的配置

配置 = { “_id”:“rs0”, “成员”:[{ “_id”:0,“主机”:“mongo-node1:27017” },{ “_id”:1,“主机”:“mongo-node2:27017” },{ “_id”:2,“主机”:“mongo-node3:27017” } ] }

rs.initiate(配置) rs.初始化

  1. 创建了管理员用户

    使用管理员 db.createUser( { 用户:“admin”, 密码:“admin”, 角色:[ { 角色:“userAdminAnyDatabase”, 数据库:“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. :

相关内容