You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何mongoexport未生成输出文件?Docker环境导出问题咨询

问题分析与解决

你的问题出在路径的作用范围上:用docker exec执行的命令是在MongoDB容器内部运行的,所以--out指定的/var/www/myTest/output.json是容器内部的路径,不是你宿主机上的路径。你用FileZilla查看的是宿主机的目录,自然看不到文件。

解决步骤

1. 验证容器内是否存在导出文件

先执行下面的命令,确认容器里确实生成了文件:

docker exec mongodb ls /var/www/myTest/output.json

如果返回文件名,说明文件在容器内没问题。

2. 将容器内的文件复制到宿主机

用docker cp命令把容器里的文件拷贝到宿主机的目标目录:

docker cp mongodb:/var/www/myTest/output.json /var/www/myTest/

执行完后再用FileZilla查看宿主机的/var/www/myTest,就能看到文件了。

3. 长期解决方案(直接导出到宿主机)

下次导出时,提前把宿主机的目录挂载到MongoDB容器里,这样导出命令可以直接把文件写到宿主机。

如果容器还没启动,启动时添加挂载参数:

docker run -d -v /var/www/myTest:/mnt/myTest --name mongodb mongo:xxx

(把mongo:xxx换成你实际使用的镜像标签)

如果容器已经在运行,先停止容器,再重新启动并挂载目录(注意备份数据):

docker stop mongodb
docker rm mongodb
docker run -d -v /var/www/myTest:/mnt/myTest --name mongodb mongo:xxx

之后执行导出命令时,把--out指定为容器内的挂载路径:

docker exec mongodb mongoexport --port 27017 -u "username" -p "password" --authenticationDatabase "admin" -d databaseName -c user --out /mnt/myTest/output.json

这样文件会直接生成在宿主机的/var/www/myTest目录下。

内容的提问来源于stack exchange,提问作者user1419243

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 05:05:24