Docker mongodb 4.2没有运行绑定挂载



我同时学习docker和mongodb,我试图在docker容器中导入一个JSON文件的集合,但有一个问题,因为这是一个容器,我使用绑定挂载将这个JSON从我的本地机器引用到我的容器,但如果我用绑定挂载运行它mongodb不会运行。

我使用以下命令使用bash运行容器:

sudo docker exec -it mongo-image bash

在容器中,我只写mongo和终端从mongo工作如预期,如果我运行以下命令:

sudo docker run -it -v "$(pwd)":/MyData mongo:4.2 /bin/bash

我看到了本地机器上的文件,但是如果我输入mongo,终端不让我启动

root@e753483bb65b:/# mongo
MongoDB shell version v4.2.15
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
2021-07-30T21:05:14.037+0000 E  QUERY    [js] Error: couldn't connect to server 
127.0.0.1:27017, connection attempt failed: SocketException: Error connecting to 
127.0.0.1:27017 :: caused by :: Connection refused :
connect@src/mongo/shell/mongo.js:353:17
@(connect):2:6
2021-07-30T21:05:14.040+0000 F  -        [main] exception: connect failed
2021-07-30T21:05:14.040+0000 E  -        [main] exiting with code 1

是否有任何建议,你可以给我导入json文件集合到mongo db docker容器或解决这个问题?

我认为您覆盖了mongo的默认运行命令,它与挂载和卷无关。我建议你改一下:

sudo docker run -it -v "$(pwd)":/MyData mongo:4.2 /bin/bash

在两个单独的命令中:

sudo docker run -d -v "$(pwd)":/MyData mongo:4.2

,然后当它打印运行容器的id时,创建一个交互式shell:

sudo docker exec -it fb82f /bin/bash

其中fb82f为docker容器的首字符。

最新更新