ref: estouro de pilha
Como mencionado acima, o motivo é que você está tentando instalar uma versão empacotada para os serviços de inicialização do Upstart, mas o ubuntu 14.04 ainda usa o SysV init por padrão. A abordagem recomendada é usar a versão posterior 3.2.x de aqui ou se você é rigoroso sobre a versão, a correção é usar
deb http://downloads-distro.mongodb.org/repo/debian-sysvinit dist 10gen
em vez de
deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.0 multiverse
Além disso, para que o mongod seja executado ao iniciar com o docker run -d , você precisará adicionar um CMD a ele. Então, eu modifiquei e compilei um arquivo docker para testar isso e ficou assim:
FROM ubuntu:14.04
RUN sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10 \
&& echo "deb http://downloads-distro.mongodb.org/repo/debian-sysvinit dist 10gen" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list \
&& apt-get update && apt-get -q -y install \
nodejs\
npm \
git \
mongodb-org
CMD ["mongod", "--dbpath", "."]
Note que, eu não usei o init para iniciar o container, pois o script de inicialização coloca o mongod em segundo plano (além de muitas outras coisas). Para que os contêineres do Docker sejam executados continuamente, o script CMD deve estar em primeiro plano.
Um clipe de /etc/init.d/mongod start () nota o - plano de fundo lá
# Start the process using the wrapper
start-stop-daemon --background --start --quiet --pidfile $PIDFILE \
--make-pidfile --chuid $DAEMONUSER \
--exec $NUMACTL $DAEMON $DAEMON_OPTS