【问题标题】:Docker mongodb 4.2 not running with bind mountDocker mongodb 4.2 未使用绑定挂载运行
【发布时间】:2021-07-30 21:08:17
【问题描述】:

我正在同时学习 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 容器或解决此问题?

【问题讨论】:

    标签: json mongodb docker


    【解决方案1】:

    我认为您正在覆盖 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 容器的初始字符。

    【讨论】:

      猜你喜欢
      • 2020-04-20
      • 2019-04-29
      • 1970-01-01
      • 2021-01-01
      • 2021-05-03
      • 1970-01-01
      • 1970-01-01
      • 2017-05-09
      • 2017-07-05
      相关资源
      最近更新 更多