Чтобы выяснить, почему Эта проблема происходит следующая команда выполняется в контейнере:
docker run -it <dockerImageName> dmesg
приводит к:
dmesg: read kernel buffer failed: Permission denied
Попытки
docker run -it <dockerImageName> sudo dmesg
возвращает ту же проблемутак как Майкл Хэмптон Как уже упоминалось, контейнеры предназначены для запуска только одной атомарной службы. На самом деле, следует понимать, что контейнеры - это не виртуальные машины, а отдельный процесс на вашем локальном хосте.
Тем не менее, я знал, что немного сложнее заставить 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
По какой-то недокументированной причине, очевидно, требуется переменная container = docker. Также требуется / sys / fs / cgroup, поскольку SystemD требует cgroups для правильной работы в соответствии с RedHat Bug 1033604.
После этого попробуйте войти в контейнер, используя docker exec -it <container> /bin/bash
и тогда вы можете выполнить свой systemctl
команды.