Mongo容器无法运行Mongo服务器

时间:2020-09-05 10:21:51

标签: mongodb docker containers

我试图从mongo映像构建mongo容器 mongo服务器未启动

我使用的命令是

docker pull mongo

docker run -d -p 27017:27017 -v $PWD/mongodata:/data/db --network host --name mongodb mongo

然后我通过使用进入容器来进行测试

docker exec -it mongodb bash

然后,当我在容器的终端中键入“ mongo”时,它表明它无法连接到服务器

关于可能出了什么问题的任何想法

1 个答案:

答案 0 :(得分:0)

为了调试类似的内容,请在没有-d的情况下运行它,以在标准输出中清楚地看到错误。

您的问题很可能是以下两个问题之一:

  1. 您正在混合使用--port--network host
  2. 您要挂载的目录是NFS或其他非标准目录(您正在使用Vagrant吗?)。

先尝试此操作(无音量),看看是否可行:

$ docker run --rm -p 27017:27017 --name mongodb mongo

如果确实如此,请添加该卷,但是这次使用另一个目录,例如:

$ docker run --rm -p 27017:27017 -v /tmp/mongodata:/data/db --name mongodb mongo

还要注意,我已经删除了--network host-您should not mix port exposure and host network。选择一个。

在此之后,甚至在尝试连接之前,请确认它正在运行:

$ docker ps

最后,从主机或容器内连接到它:

$ docker exec -it mongodb mongo

最后,作为尝试使用任何docker堆栈的另一种方法,请考虑使用docker compose。这是您的mongo实验之一:

version: '3'

services:
  server:
    image: mongo
    ports: ["27017:27017"]

  client:
    image: mongo
    depends_on: [server]
    entrypoint: mongo --host server

现在您可以运行:

$ docker-compose run --rm client