2014-10-07 3 views
1

boot2docker를 사용하여 OSX에서 도커 컨테이너를 실행 중입니다. 패키지 mongodb-org에서 공식 방법을 사용하여 몽고가 설치된 최신 Ubuntu 이미지입니다.도커 컨테이너에서 Mongo DB deamon을 실행할 수 없습니다.

명령 줄에서 mongod을 완벽하게 실행할 수는 있지만 서비스로 실행할 수는 없습니다. 나는 모든 출력이없는 start mongod을 위해 노력했다

Rather than invoking init scripts through /etc/init.d, use the service(8) 
utility, e.g. service mongod start 

Since the script you are attempting to invoke has been converted to an 
Upstart job, you may also use the start(8) utility, e.g. start mongod 

내가 할 노력하고있어 sudo service mongod start이 반환합니다. 나는 Google에서 찾은 모든 것을 시도했지만 운이 없다.

한편, 나는 apt-get을 사용하여 MySQL을 설치하려고 시도했으며 완벽하게 서비스로 실행할 수 있습니다.

또한 우분투의 mongodb 패키지에서 이전 버전 인 Mongo를 설치하려고했습니다. 또한 서비스로 실행하는 데 문제가 없습니다.

나는 /etc/init.d/mongod 스크립트에 문제가 있다고 의심하지만 정확히 무엇을 모르고 있습니다.

어떤 도움도 필요하지 않습니다.

+0

Dockerfile을 게시 할 수 있습니까? –

+0

MongoDB University의 M202 과정을 위해 만든 docker 이미지 (https://registry.hub.docker.com/u/mwmahlberg/m202docker/)와 비교할 수 있습니다. 일반적으로 Docker 컨테이너에서 서비스를 사용하는 것은 좋지 않습니다. [supervisord] (http://supervisord.org)로 좋은 결과를 얻었습니다. –

+0

@ChrisMcKinnel mongo를 컨테이너 내에 직접 설치하고 있습니다. Dockerfile에서 가져온 것이 아닙니다. – burdiyan

답변

0

Upstart (/ sbin/init)가 시스템에서 시작된 첫 번째 프로세스가 아니기 때문에 Docker Ubuntu 이미지의 init 관련 명령이 처리/작동되지 않습니다.

일반적으로 Upstart를 사용하여 초기화하는 모든 서비스는/sbin/init을 사용하여 컨테이너를 시작하지 않는 한 Docker 컨테이너에서 제대로 실행되지 않습니다. 우분투 -upstart 이미지를 사용해야하고,)

이런 식으로해야한다면 mongo에 대한 전통적인 init 스크립트를 작성하고 update-rc.d를 사용하여 삽입하십시오. 그런 다음/sbin/service로 시작해야합니다.

관련 문제