In order to debug why this issue occurs the following command is run on a container:
docker run -it <dockerImageName> dmesg
results in:
dmesg: read kernel buffer failed: Permission denied
Attempts
- Running
docker run -it <dockerImageName> sudo dmesg
returns the same issue
as Michael Hampton mentioned, containers are meant to run only single atomic service. As a matter of fact, one should understand that containers are not virtual machines but a single process by itself on your localhost.
Nevertheless, I got to know that, its a bit more harder to get SystemD working inside a container from here
I was able to get SystemD working inside an image built FROM
centos:centos7 with:
docker run --privileged -ti -e "container=docker" -v
/sys/fs/cgroup:/sys/fs/cgroup trinitronx/ansible-base:stable-centos7
/usr/sbin/init
For some undocumented reason the variable
container=docker is apparently required. /sys/fs/cgroup is also
required, as SystemD needs cgroups to work properly according to
RedHat Bug 1033604.
After doing this, try to login to the container using docker exec -it <container> /bin/bash
and then you could execute your systemctl
commands.
You aren’t allowed to do that in a container. What’s the purpose of this?