2016-08-17 5 views
0

쉬운 Dockerfile을 작성하여 현재 디렉토리에서 컨테이너로 파일을 복사 한 다음 mongorestore 명령을 실행하여 데이터를 시드합니다. 여러 웹 사이트를 검토 한 결과 여전히 다음 오류가 발생합니다.MongoDB 컨테이너 Dockerfile 도달 할 수없는 서버

2016-08-17T03 : 03 : 22.639 + 0000 실패 : 서버를 dB로 연결 오류 : 도달 서버
명령 '/ 빈/SH -c mongorestore --drop/몽고 씨앗/mongo- 1

내가 용기에 "bash에"와 같은 매개 변수와 함께 mongorestore 명령을 실행하여이 데이터베이스를 채우는 경우 : 씨앗 데이터/몽고 - 덤프 127.0.0.1:27017 --host 'a는 0이 아닌 코드를 반환 . 내가 잃어버린거야. 제발 도와 줘.

은 다음은 컨테이너를 시작할 때

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가 실행되는 Dockerfile입니다. 이미지를 빌드하는 도커가 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

다했다. mongostore 대신 mongorestore를 사용해야합니다. 나는 아직도 CMD, ENTRYPOINT, RUN 등등을위한 다른 용도를 배우고있다. – user3066155

+0

미안하다, 그것은 나의 끝에 오타이었다 :) – Martin

관련 문제