如何在docker for mac的centos容器中使用systemtap(stap)

当我使用stap,它告诉我这个图像的错误,我该如何解决它。

从错误截图

真的不知道为什么这个问题已经下了一次。 当我得到关注,downvotter是我总是毫不犹豫地问stackoverflow上的东西的原因之一…

所以,在Ubuntu下的容器得到了同样的关注,这是我如何解决它:尝试启动docker上的Ubuntu的bash(不是centos,但步骤应该是类似的)

docker run -it --cap-add sys_admin ubuntu bash 

然后安装一些库和systemtap

 apt-get update apt-get --yes install build-essential cmake bc curl diffutils git kmod libcurl4-openssl-dev wget apt-get --yes install systemtap systemtap-sdt-dev 

现在安装内核头文件(需要时间)

 export KERNELVER=$(uname -r | cut -d '-' -f 1) export KERNELDIR=/linux-$KERNELVER cd / curl -o linux-${KERNELVER}.tar.gz https://www.kernel.org/pub/linux/kernel/v4.x/linux-${KERNELVER}.tar.gz tar zxf linux-${KERNELVER}.tar.gz cd linux-${KERNELVER} zcat /proc/1/root/proc/config.gz > .config make all make modules_prepare make headers_install make modules_install 

现在运行stap -l 'syscall.*' 。 它应该工作和显示:

 ... syscall.waitpid syscall.write syscall.writev 

这取自: https : //github.com/fdebonneval/mobydig/blob/master/resources/build