Docker Bench-如何持久保存日志或提供日志文件参数

时间:2019-06-05 20:05:48

标签: docker

我正在按照本教程从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输出的任何想法?

1 个答案:

答案 0 :(得分:1)

该文件可能是在容器内部创建的。

您已经注意到,您可以使用-l path选项设置其路径, 但是如果您希望文件显示在主机上,则需要挂载 该路径作为体积。

换句话说,您需要运行以下命令:

docker run (...) -v /path/to/my-logs:/tmp/my-logs docker-bench-security (...) -l /tmp/my-logs/log.txt

-其中(...)是您使用的现有参数。