在Docker上运行dmesg导致“dmesg:读取内核缓冲区失败:权限被拒绝”

为了debugging为什么会出现此问题在容器上运行以下命令:

docker run -it <dockerImageName> dmesg 

结果是:

 dmesg: read kernel buffer failed: Permission denied 

尝试

  1. 运行docker run -it <dockerImageName> sudo dmesg返回相同的问题

正如迈克尔·汉普顿 ( Michael Hampton)提到的,容器只能运行单个primefaces服务。 事实上,人们应该明白,容器不是虚拟机,而是本地主机上的一个进程。

尽pipe如此,我还是知道,从这里开始,SystemD在一个容器内工作起来要困难得多

我能够得到SystemD工作在一个内置的从centos:centos7的图像中:

docker run –privileged -ti -e“container = docker”-v / sys / fs / cgroup:/ sys / fs / cgroup trinitronx / ansible-base:stable-centos7 / usr / sbin / init

对于一些无证的原因,variablescontainer = docker显然是必需的。 / sys / fs / cgroup也是必需的,因为SystemD需要cgroups根据RedHat Bug 1033604正常工作。

做完这些之后,尝试使用docker exec -it <container> /bin/bashlogin容器,然后执行systemctl命令。