我正在按照本教程从its GitHub page运行docker bench
我正在执行以下操作:
C:/ docker ps
<lists running containers>
C:/ docker run -it --net host --pid host --userns host --cap-add audit_control -e DOCKER_CONTENT_TRUST=$DOCKER_CONTENT_TRUST -v /etc:/etc -v /usr/bin/docker-containerd:/usr/bin/docker-containerd -v /usr/bin/docker-runc:/usr/bin/docker-runc -v /usr/lib/systemd:/usr/lib/systemd -v /var/lib:/var/lib -v /var/run/docker.sock:/var/run/docker.sock --label docker_bench_security docker/docker-bench-security
docker bench命令工作正常,我在底部的总检查中看到带有PASS / WARN的彩色输出和总分。
问题是docker bench说:“默认情况下,Docker Bench for Security脚本将运行所有可用的CIS测试,并在名为docker-bench-security.sh.log的当前目录中生成日志。 json和docker-bench-security.sh.log”
但是在执行命令的根目录(C :)中,我看不到这两个文件。
我也尝试过运行与上面相同的docker bench命令,但是带有可选的log参数
docker run docker/docker-bench-security..... -l logs.txt
但是我看不到任何文件被创建(如果我预先制作了该文件,则不会填充它。)
关于如何在文件中捕获docker bench输出的任何想法?
答案 0 :(得分:1)
该文件可能是在容器内部创建的。
您已经注意到,您可以使用-l path
选项设置其路径,
但是如果您希望文件显示在主机上,则需要挂载
该路径作为体积。
换句话说,您需要运行以下命令:
docker run (...) -v /path/to/my-logs:/tmp/my-logs docker-bench-security (...) -l /tmp/my-logs/log.txt
-其中(...)
是您使用的现有参数。