我正在尝试在构建图像处理之后安装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.
...
如何解决这个问题?如果这是一个问题。
答案 0 :(得分:4)
Here是一个很好的帖子,试图根源导致您面临的问题。
缩短:
RUN printf "#!/bin/sh\nexit 0" > /usr/sbin/policy-rc.d
应解决您的问题
OR
如果仍无法解决问题,请尝试使用privileged
选项运行docker容器。像这样,docker run --privileged -d -ti DOCKER_IMAGE:TAG
理想情况下,我不建议使用privileged
选项运行容器,除非它是一个测试床容器。运行具有特权的docker容器的原因是为容器提供了所有功能,并且它还解除了所有强制执行的限制。换句话说,容器几乎可以完成主机可以执行的所有操作。但这不是一个好习惯。这就破坏了码头从主机隔离的目的。
执行此操作的理想方法是根据您要实现的目标,对您的docker容器set capabilities
。谷歌搜索这应该可以帮助您为您的docker容器提供适当的capability
。