./run.sh运行报错:Error: readlink /host/proc/1/ns/pid: permission denied
leiwuhen92 opened this issue · comments
Bug 具体描述
./run.sh scan container ea7d6c3d7bc7直接报错:Error: readlink /host/proc/1/ns/pid: permission denied
复现步骤
- 拉取镜像
docker pull registry.veinmind.tech/veinmind/veinmind-runner:latest
- 下载 [veinmind-runner]平行容器启动脚本
wget -q https://download.veinmind.tech/scripts/veinmind-runner-parallel-container-run.sh -O run.sh && chmod +x run.sh
- 扫描本地容器,出现错误
$ ./run.sh scan container ea7d6c3d7bc7
Error: readlink /host/proc/1/ns/pid: permission denied
Usage:
veinmind-runner scan container [flags] target
Examples:
1. scan dockerd container (all)
veinmind-runner scan container dockerd:*
环境
- linux:Ubuntu 18.04.6
- Docker 版本: Docker version 20.10.21
- libveinmind 版本:
- 问脉镜像版本:
- 代码版本:
补充说明
查看了下run.sh文件,内容如下:
#!/bin/bash
docker run --rm -v /:/host -v `pwd`:/tool/resource -v /var/run/docker.sock:/var/run/docker.sock registry.veinmind.tech/veinmind/veinmind-runner $*
加上特权参数--privileged后运行就可以了。
在去做容器扫描的时候,实际是通过 procfs
去实现平行容器的扫描,所以必须让容器有访问 procfs
的权限,可以看一下机器是不是开了 selinux,导致默认情况下即使挂载,也没有权限
@d1nfinite SELinux没有开启
@d1nfinite SELinux没有开启
ok,后面我们把对应的 Capability 加到运行脚本里