可以在docker容器中运行Mongodb守护程序

时间:2014-10-07 16:56:30

标签: mongodb ubuntu docker linux-containers

我正在使用boot2docker在OSX中运行docker容器。这是一个最新的Ubuntu映像,使用来自包mongodb-org的官方方式安装mongo。

我可以从命令行完美运行mongod,但无法将其作为服务运行。

当我尝试sudo service mongod start时,它会返回

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

我试图做start mongod没有任何输出。我尝试过在Google上找到的所有内容,但没有运气。

与此同时,我尝试使用apt-get安装MySQL,我可以完美地将其作为服务运行。

此外,我还尝试从Ubuntu的mongodb软件包安装Mongo,这是一个旧版本。将它作为服务运行也没问题。

我怀疑/etc/init.d/mongod脚本有问题,但不确切知道是什么。

提供任何帮助。

2 个答案:

答案 0 :(得分:0)

Docker Ubuntu映像上与init相关的命令被删除/不工作,因为Upstart(/ sbin / init)不是在计算机上启动的第一个进程。

通常,任何使用Upstart初始化的服务都无法在Docker容器中正常运行,除非您使用/ sbin / init启动容器(您可能必须使用ubuntu-upstart映像,并对其进行一系列调整)它也是。)

如果你真的需要这样做,为mongo编写一个传统的init脚本并使用update-rc.d插入它。然后,用/ sbin / service启动它应该可以工作。

答案 1 :(得分:0)

为什么不让Dockerimage运行mongod而不是init / shell / etc? "每个容器一个进程",对吧?

使用Dockerfile创建图像,并将CMD设置为: CMD ["/usr/bin/mongod", "-f", "/etc/mongod.conf"]