如何解决“invoke-rc.d:policy-rc.d拒绝执行启动”。在构建容器Ubuntu 14.04并安装apache2时?

时间:2017-09-15 20:25:30

标签: apache docker

我正在尝试在构建图像处理之后安装apache2。 这是我在Dockerfile中使用的代码。

FROM ubuntu:14.04
RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections

ENV DEBIAN_FRONTEND noninteractive

RUN sudo apt-get update
RUN sudo apt-get install -y apache2

在这个过程之后我安装了apache,但是我得到了跟随错误(终端中的红色显示)

...
invoke-rc.d: policy-rc.d denied execution of start.
...

如何解决这个问题?如果这是一个问题。

1 个答案:

答案 0 :(得分:4)

Here是一个很好的帖子,试图根源导致您面临的问题。

缩短

  1. RUN printf "#!/bin/sh\nexit 0" > /usr/sbin/policy-rc.d应解决您的问题  OR

  2. 如果仍无法解决问题,请尝试使用privileged选项运行docker容器。像这样,docker run --privileged -d -ti DOCKER_IMAGE:TAG

  3. 理想情况下,我不建议使用privileged选项运行容器,除非它是一个测试床容器。运行具有特权的docker容器的原因是为容器提供了所有功能,并且它还解除了所有强制执行的限制。换句话说,容器几乎可以完成主机可以执行的所有操作。但这不是一个好习惯。这就破坏了码头从主机隔离的目的。

    执行此操作的理想方法是根据您要实现的目标,对您的docker容器set capabilities。谷歌搜索这应该可以帮助您为您的docker容器提供适当的capability