尝试使用 docker 运行 mongo 命令时无法连接到服务器 127.0.0.1:27017



我正试图使用以下命令在docker容器上运行mongo脚本docker run --rm -it --volume "$(pwd):/scripts" mongo:latest mongo /scripts/${SCRIPT_FILE_NAME},我一直收到这个错误:

MongoDB shell version v4.4.0
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
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:362:17
@(connect):2:6
exception: connect failed
exiting with code 1

您共享的docker run命令尝试在容器启动时立即显式执行mongo /scripts/${SCRIPT_FILE_NAME}命令
此时,mongodb守护进程还没有准备好接受连接。

您不应该尝试手动初始化,而应该利用内置的mongo机制,该机制可以在/docker-entrypoint-initdb.d下发现脚本并在DB运行时执行它们。

当mongo容器第一次启动时,它将执行在/docker入口点initdb.d中找到的扩展名为.sh和.js的文件。文件将按字母顺序执行
.js文件将由mongo使用mongo_INITDB_database变量指定的数据库执行(如果存在(,或者以其他方式进行测试。您还可以在.js脚本中切换数据库

查看mongo图片官方文档了解更多详细信息。

最新更新