dockerfile - CMD mongoimport

问题描述 投票:0回答:1
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 并运行此命令,它工作得很好。

有什么想法吗?

mongodb docker mongo-shell mongoimport
1个回答
0
投票

当您使用

CMD mongoimport ..
时,您会覆盖原始的
CMD ["mongod"]
,这将启动数据库。因此,您当前的示例永远不会启动数据库,因此无法连接。

如果您想在启动时初始化/恢复数据库,可以使用容器映像中的

/docker-entrypoint-initdb.d
目录。 查看 使用 Docker-Compose 在 MongoDB 上导入数据作为几个示例。

© www.soinside.com 2019 - 2024. All rights reserved.