mongo docker(通过 Dockerfile 创建)未连接到 Compass/外部主机

mongo docker (created through Dockerfile) not connecting to Compass/ external host

我创建了一个 mongodb 的 Dockerfile,如下所示。

FROM mongo

COPY ./start.sh .

RUN chmod +x ./start.sh

EXPOSE 27017-27019

CMD ["./start.sh"]

start.sh包含以下内容

mongod

我正在使用的命令 运行 docker

sudo docker run -p 27017:27017 custom_mongo

我能够从容器内部连接此 docker(即通过 exec -it 命令,然后使用 mongo 客户端)但是,当尝试从 [=35 连接时=] 指南针超时,这意味着端口不是 forwarded/exposed.

等同于docker,当运行直接在没有任何Dockerfile的情况下,成功连接到Compass。下面给出了我用过的命令。

docker run -d -p 27017-27019:27017-27019 --name mongodb mongo

所以,问题是 start.sh 中的 mongod 命令正在监听 127.0.0.1,即 localhost,它只能从容器内部访问,不能从外部访问。

为了让容器监听外部主机,它应该连接到 0.0.0.0,这意味着任何 IP。因此,要启用它,请将启动命令编辑为 mongod --bind_ip_all.

参考: https://forums.docker.com/t/docker-running-host-but-not-accessible/44082/48