在没有systemd的CentOS 7 Docker镜像中的服务
我正在尝试创build一个基于CentOS 7的Docker容器,它将托pipeR,shiny-server和rstudio-server,但是为了让服务启动,我需要systemd。 我可以使用启用systemd的centos镜像作为基础,但是我需要以特权模式运行容器,并允许访问主机上的/ sys / fs / cgroup。 我可能能够容忍不那么安全的情况,但是我无法与在Windows或Mac上运行Docker的用户共享容器。
我发现这个问题,但它是2岁,似乎没有任何解决scheme。
任何提示或替代品,表示赞赏。
更新:成功!
下面是我发现的:对于shiny服务器,我只需要从命令行使用合适的参数执行shiny-server
。 我将相应的调用捕获到一个脚本文件中,并使用我的Dockerfile中的最后一个CMD行进行调用。
rstudio-server比较棘手。 首先,我需要安装脚本来获得依赖关系,这样一些第一个脚本就可以工作了。 在这之后,执行rstudio-server start
将不会执行任何操作,也不会提供任何错误。 我通过各种链接跟踪调用,发现自己在/ usr / lib / rstudio-server / bin / rstudio-server中。 daemonCmd()函数testingcat / proc / 1 / comm来确定如何启动服务器。 出于某种原因,这是失败的,但看看脚本,似乎很清楚,它需要执行/etc/init.d/rstudio-server start
。 如果我手动或在Docker CMD行中,似乎工作。
我已经采取了这两个CMD线的要求,并把它们放到一个sh脚本,从Dockerfile中的CMD线调用。
有点破解,但不坏。 我很高兴听到任何其他的build议。
你不一定需要使用像systemd这样的init系统。
基本上,你需要启动多个服务,现有的模式。 查看这个页面,了解如何使用supervisord实现同样的function: https : //docs.docker.com/engine/admin/using_supervisord/
- docker上的AEM 6.0 – Dbus连接错误
- Percona 5.6 Docker Image无法加载我的/etc/mysql/conf.d/*.cnf
- 在CentOS中运行后自动停靠Docker
- 在Vagrant上运行的CentOS 7上无法安装Docker
- 在centos7上安装docker:docker-engine-selinux与docker-selinux-冲突
- 我应该创build一个虚拟机,然后使用VM内的Docker机器进行开发
- Docker Security-用户运行进程
- Docker CentOS 7 – cron不能在本地机器上工作
- 如何在Centos 7上公开Docker Remote API?