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

时间:2020-02-24 10:07:03

标签: mongodb docker devops portforwarding

我创建了一个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

enter image description here 我可以从容器内部连接此docker(即通过exec -it命令,然后使用mongo客户端),但是,当尝试从Mongo Compass连接时,它超时了,这意味着该端口未转发/暴露。

等效docker在没有任何Dockerfile的情况下直接运行时,已成功连接到Compass。下面是我使用过的命令。

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

1 个答案:

答案 0 :(得分:0)

因此,问题在于start.sh中的 mongod 命令正在侦听127.0.0.1(即本地主机),只能从容器内部而不是外部进行访问。

要使容器侦听外部主机,应将其连接到 0.0.0.0 ,这表示任何IP。因此,要启用该功能,请将启动命令编辑为 mongod --bind_ip_all

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

相关问题