我正在使用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脚本有问题,但不确切知道是什么。
提供任何帮助。
答案 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"]