【发布时间】:2019-06-25 10:59:37
【问题描述】:
我正在尝试运行 docker 命令以通过一行命令完成以下步骤。
A) 拉取 docker 映像,
B)然后启动容器,
C) 将目录从主机卷挂载到启动的容器,
D) 然后在容器内发出扫描命令以捕获报告。
我可以用这个命令实现步骤 a、b 和 c。
$ docker run -d -it --name test -v /root/tools:/var/local <mydocker-image-registry>
但是对于最后一步 D,即在容器内运行扫描并捕获报告,我无法将该命令添加到上述命令并使其正常工作。
下面的这条命令独立工作,但无法附加到上面的行并使其工作。
<scan> -s python -o ./reports
容器刚刚启动并在以下命令中退出
docker run -d -it --name test -v /root/tools:/var/local <mydocker-image-registry> <scan> -s python -o ./reports
还做了一些基本的搜索,并尝试添加如下入口点
docker run -d -it --name test -v /root/tools:/var/local <mydocker-image-registry> -- entrypoint <scan> -s python -o ./reports
但这也没有用。刚刚收到错误docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused "exec: \"--\": executable file not found in $PATH": unknown.
期望使用单个 docker 命令执行上述所有 4 个步骤,然后我得到填充结果的“报告”。
【问题讨论】:
-
如果这对你有用,请检查我的答案,如果不是,请分享你的 dockerfile
-
从日志
error: Error: Output path must specify a valid, existing directory.中非常清楚。我建议您创建容器,然后运行docker exec -it test ash| bash -c "scan-Command> -s python -o ./reports info",然后调查错误。或分享你的 dockerfile -
您好 Adiii,感谢您回答我的问题。根据您的建议修改后运行以下命令。 ` $ docker run --rm -it --name test -v /root/tools:/var/local
-s python -o ./reports info: 扫描开始.. . 信息:登录到:'/Scan1.log' 信息:当前 CLI 版本:2.x.x 警告:无法检查 CLI 更新。错误:错误:输出路径必须指定一个有效的现有目录。` 后来使用 $ docker ps -a检查,没有容器在运行。 -
你明白了,它会那样做。对于 dockerfile,我实际上是直接从私有存储库中提取图像,因此我还没有源 Dockerfile。感谢您的帮助 Adiii。
-
很高兴知道它有效。我很高兴@Vizag
标签: docker docker-run docker-entrypoint