A execução do dmesg no Docker resulta em “dmesg: read buffer do kernel falhou: Permission denied”

2

Para depurar o motivo pelo qual este problema ocorre quando o seguinte comando é executado em um container:

docker run -it <dockerImageName> dmesg

resulta em:

dmesg: read kernel buffer failed: Permission denied

Tentativas

  1. A execução de docker run -it <dockerImageName> sudo dmesg retorna o mesmo problema
por 030 04.02.2016 / 21:02

1 resposta

1

como Michael Hampton mencionado, os contêineres destinam-se a executar apenas um serviço atômico. De fato, deve-se entender que os contêineres não são máquinas virtuais, mas um único processo sozinho em seu host local.

No entanto, fiquei sabendo disso, é um pouco mais difícil conseguir o funcionamento do SystemD dentro de um contêiner de aqui

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.

Depois de fazer isso, tente fazer login no contêiner usando docker exec -it <container> /bin/bash e, em seguida, você poderá executar seus comandos systemctl .

    
por 04.02.2016 / 22:47