FROM mongo
COPY . /data/db2/
# Expose the MongoDB port
EXPOSE 27017
CMD mongoimport --db test --collection data --file /data/db2/data.json
copy命令复制data.json文件
当我尝试将 mongoimport 放入 CMD 指令时,我收到此错误:
docker 日志:
error connecting to host: failed to connect to mongodb://localhost/: server selection error: server selection timeout, current topology: { Type: Single, Servers: [{ Addr: localhost:27017, Type: Unknown, Last error: connection() error occurred during connection handshake: dial tcp 127.0.0.1:27017: connect: connection refused }, ] }
当我尝试连接到容器 shell 并运行 mongosh 时,我收到此错误:
MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017
奇怪的是,当我没有输入 CMD 指令时,我尝试连接到容器 shell 并运行此命令,它工作得很好。
有什么想法吗?
当您使用
CMD mongoimport ..
时,您会覆盖原始的 CMD ["mongod"]
,这将启动数据库。因此,您当前的示例永远不会启动数据库,因此无法连接。
如果您想在启动时初始化/恢复数据库,可以使用容器映像中的
/docker-entrypoint-initdb.d
目录。
查看
使用 Docker-Compose 在 MongoDB 上导入数据作为几个示例。