在SO上有很多问题,例如仅凭此命令如何
docker run --name mymongo --network bridge -p 27117:27117 -v "$PWD/db":/data/db -d mongo
应该在端口27117上运行mongo。 但是,这对我不起作用。容器运行,但是mongo仅在其默认端口上运行(请参阅容器本身的输出):
# mongo
MongoDB shell version v4.0.4
connecting to: mongodb://127.0.0.1:27017
# mongo --port 27117
MongoDB shell version v4.0.4
connecting to: mongodb://127.0.0.1:27117/
2018-11-20T17:26:09.345+0000 E QUERY [js] Error: couldn't connect to server 127.0.0.1:27117, connection attempt failed: SocketException: Error connecting to 127.0.0.1:27117 :: caused by :: Connection refused :
这是怎么回事?
非常感谢!
答案 0 :(得分:3)
在您的容器内,mongo在其默认端口27017上运行
因此,您应该修改命令并指定端口映射,如下所示:-p 27117:27017
完整的命令是这样的:
docker run --name mymongo --network bridge -p 27117:27017 -v "$PWD/db":/data/db -d mongo
答案 1 :(得分:2)
使用该命令,您要告诉docker端口为27117,但还需要使用该端口启动mongo。
要这样做,只需在命令末尾添加--port 27117
:
docker run --name mymongo --network bridge -p 27117:27117 -v "$PWD/db":/data/db -d mongo --port 27117