我正在尝试设置一个运行 MongoDB 的容器,该容器在启动时使用 mongorestore 填充数据。这个想法是快速建立一个用于测试和模拟的虚拟数据库。
我的 Dockerfile 如下所示:
FROM mongo:bionic
COPY ./db-dump/mydatabase/* /db-dump/
docker-compose.yml 看起来像这样:
version: "3.1"
services:
mongo:
build: ./mongo
command: mongorestore -d mydatabase ./db-dump
ports:
- "27017:27017"
如果我运行这个docker-compose up
,它暂停了一段时间,然后我收到一条错误消息:
error connecting to host: could not connect to server: server selection error: server selection timeout, current topology: { Type: Single, Servers: [{ Addr: localhost:27017, Type: Unknown, State: Connected, Average RTT: 0, Last error: connection() : dial tcp 127.0.0.1:27017: connect: connection refused }, ] }
但是,在容器上打开 CLI 并运行完全相同的命令不会出现任何问题。我尝试过添加-h
与容器的名称或 127.0.0.1 没有区别。为什么容器运行后该命令可以正常工作,但无法连接?