2016-08-17 55 views
0

我想構建一個簡單的Dockerfile將文件從當前目錄複製到容器中,然後運行一個mongorestore命令來播種數據。我看過很多不同的網站,但我仍然收到以下錯誤消息。MongoDB容器Dockerfile無法訪問服務器

2016-08-17T03:03:22.639 + 0000失敗:錯誤連接到DB服務器:無可達服務器
命令「/ bin/sh的-c mongorestore --drop /蒙戈種子/ mongo-種子數據/蒙戈轉儲--host 127.0.0.1:27017' 返回一個非零碼:1

當I‘打擊’到容器中,用相同的參數運行mongorestore命令它填充數據庫。我不知所措,請幫助。

下面是Dockerfile

FROM mongo 

COPY . /mongo-seed 
EXPOSE 27017 


CMD ["mongod"] 
RUN mongorestore --drop /mongo-seed/mongo-seed-data/mongo-dump --host 127.0.0.1:27017 

回答

2

CMD當您啓動容器運行。 因此,當docker在構建映像時執行dockerfile的最後一條RUN指令時,mongod未運行。

FROM mongo 
COPY . /mongo-seed 
# EXPOSE 27017 //not necessary, the mongo base image already has that instruction 
ENTRYPOINT mongod 

生成並運行:docker build -t foo . && docker run -d --name bar foo

執行mongorestore命令:

docker exec bar mongorestore --drop ... 
+0

一切工作正常。需要使用mongorestore而不是mongostore。我仍然在學習CMD,ENTRYPOINT,RUN等的不同用法。 – user3066155

+0

對不起,這是我的錯誤:) – Martin