我正在尝试使用正在运行的mongodb实例创建Docker图像,该实例已经包含一些数据。所以,我把我的Dockerfile
这样的:为什么Docker Mongo在图像构建期间拒绝连接
FROM mongo:3.4
RUN mongo --eval "printjson(db.serverStatus())"
,我立即得到这个错误:
Sending build context to Docker daemon 7.168kB
Step 1/3 : FROM mongo:3.4
---> b39de1d79a53
Step 2/3 : RUN mongo --eval "printjson(db.serverStatus())"
---> Running in 778f00a25623
MongoDB shell version v3.4.7
connecting to: mongodb://127.0.0.1:27017
2017-09-01T13:42:23.128+0000 W NETWORK [thread1] Failed to connect to 127.0.0.1:27017, in(checking socket for error after poll), reason: Connection refused
2017-09-01T13:42:23.128+0000 E QUERY [thread1] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed :
[email protected]/mongo/shell/mongo.js:237:13
@(connect):1:6
exception: connect failed
The command '/bin/sh -c mongo --eval "printjson(db.serverStatus())"' returned a non-zero code: 1
也就是说,mongod
守护拒绝我的连接。
他为什么要做这样的事情?特别是当我可以从外部自由连接到数据库时。
编辑:
我试图查看是否mongod
服务是由与service mongod status
=>mongod:unrecognized service
更换RUN
命令运行在所有。所以看起来mongod
服务不是runnig。这是奇怪的,因为mongo:3.4
形象从我与推导两端的last statement:
CMD ["mongod"]
是在docker映像中已经启动的mongod服务吗? –
@GregoryNEUT它似乎不是。我相应地编辑了我的问题。 – Dachstein