【发布时间】:2019-06-26 01:47:07
【问题描述】:
我正在运行带有 mongodb 的 docker 容器
someId mongo:3.6 "docker-entrypoint.s…" 11 days ago Up 11 days 0.0.0.0:27017->27017/tcp myMongo
当我尝试通过 mongo localhost:27017 从本地计算机连接到该 mongo 时,我收到错误
error: couldn't connect to server localhost:27017, connection attempt failed: SocketException: Error connecting to localhost:27017 (127.0.0.1:27017) :: caused by :: Connection refused :
connect@src/mongo/shell/mongo.js:328:13
我做错了什么?
更新
这是docker-compose ps的输出
myMongo docker-entrypoint.sh --wir ... Up 0.0.0.0:27017->27017/tcp
Docker 编写文件
version: '2'
services:
mongo:
image: "mongo:3.6"
container_name: myMongo
ports:
- "27017:27017"
mem_limit: 2G
更新最终结果
重新启动我的 ubuntu,再次启动 docker-compose,一切都开始按预期工作:mongo localhost 现在可以工作了。怀疑是ubuntu 18.04注销过程有问题,因为在那之前(和系统重启前)我执行了几次注销/登录
【问题讨论】:
-
它不会连接,因为 docker 容器网络与您的本地系统网络是分开的。因此,您需要通过以下命令在本地系统上运行带有暴露端口的 docker:
docker run -d -e ROOT_URL=http://localhost -e MONGO_URL=mongodb://localhost:27017 --network="host" -
实际上我通过
docker-compose命令启动了那个docker进程。更新了问题 -
那么你还需要添加主机和docker端口映射,如
ports: - 10005:80 -
那么你还需要添加主机和docker端口映射,如
ports: - 10005:80