首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不带systemd的CentOS 7 Docker镜像中的服务

不带systemd的CentOS 7 Docker镜像中的服务
EN

Stack Overflow用户
提问于 2017-04-05 00:03:34
回答 1查看 2.6K关注 0票数 1

我正在尝试创建一个基于Docker 7的CentOS容器,它将托管R、shiny-server和rstudio-server,但我需要有systemd才能启动服务。我可以使用启用了systemd的centos映像作为基础,但随后需要在特权模式下运行容器,并允许访问主机上的/sys/fs/cgroup。我可能能够容忍不太安全的情况,但我不能与在Windows或Mac上运行Docker的用户共享容器。

我发现了这个问题,但它已经存在两年了,而且似乎没有任何解决方案。

任何建议或选择都是值得感谢的。

更新:成功!

我发现:对于shiny-server,我只需要从命令行使用适当的参数执行shiny-server。我捕获了对脚本文件的适当调用,并使用Dockerfile中的最后一行CMD进行调用。

rstudio-server更加棘手。首先,我需要安装initscripts以获得适当的依赖关系,以便一些rstudio脚本能够工作。在此之后,执行rstudio-server start实际上不会做任何事情,也不会提供任何错误。我通过各种链接跟踪调用,发现自己在/usr/lib/rstudio-server/bin/rstudio-server中。daemonCmd()函数测试cat /proc/1/comm以确定如何启动服务器。由于某种原因,它失败了,但看一下脚本,似乎很清楚它需要执行/etc/init.d/rstudio-server start。如果我手动或在Docker CMD行中这样做,它似乎可以工作。

我将这两个CMD行需求放入一个sh脚本中,该脚本可从Dockerfile中的CMD行调用。

这是一个小技巧,但还不错。我很高兴听到任何其他的建议。

EN

回答 1

Stack Overflow用户

发布于 2017-04-05 03:14:01

您不一定需要使用像systemd这样的init系统。

从本质上讲,您需要启动多个服务,这方面有一些现有的模式。请查看此页面,了解如何使用supervisord实现相同的功能:https://docs.docker.com/engine/admin/using_supervisord/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43212291

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档