我正在尝试在构建映像过程之后安装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
Run Code Online (Sandbox Code Playgroud)
完成此过程后,我安装了apache,但出现了以下错误(终端中的红色显示)
...
invoke-rc.d: policy-rc.d denied execution of start.
...
Run Code Online (Sandbox Code Playgroud)
如何解决这个问题?如果有问题。
这是一篇很好的文章,试图找出导致您面临的问题的根本原因。
较短的方法:
RUN printf "#!/bin/sh\nexit 0" > /usr/sbin/policy-rc.d 应该解决您的问题,或者
如果那不能解决问题,请尝试运行带有privileged选项的docker容器。像这样,docker run --privileged -d -ti DOCKER_IMAGE:TAG
理想情况下,privileged除非是测试台容器,否则我不建议带选项运行容器。运行具有特权的Docker容器的原因是赋予了该容器所有的功能,同时也消除了所有强制实施的限制。换句话说,容器可以完成主机可以做的几乎所有事情。但这不是一个好习惯。这违反了将docker与主机隔离的目的。
理想的方法是set capabilities根据要实现的目标对Docker容器进行操作。谷歌搜索应该可以帮助您提供适合capability您的docker容器的工具。
| 归档时间: |
|
| 查看次数: |
5281 次 |
| 最近记录: |