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

问题描述 投票:0回答:1

我创建了一个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
mongodb docker devops portforwarding
1个回答
0
投票

所以,问题在于start.sh中的命令正在侦听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

© www.soinside.com 2019 - 2024. All rights reserved.