我遵循以下示例:https : //zaproxy.blogspot.com/2017/06/scanning-apis-with-zap.html
docker pull owasp/zap2docker-weeklydocker run -t owasp/zap2docker-weekly zap-api-scan.py -t \
https://www.example.com/openapi.json -f openapi
它有效docker run -v /etc/hosts:/etc/hosts -v $(pwd):/zap/wrk:rw -t owasp/zap2docker-weekly zap-api-scan.py -t myapitest.json -f openapi
我得到:
无法在本地 docker 中找到图像 'in:latest':来自守护进程的错误响应:pull access denied for in,存储库不存在或可能需要 'docker login'。
我用谷歌搜索找到解决方案,因为我在 Docker 和 ZAP 方面都是新手,但徒劳无功。您当前的工作目录的路径中可能有空格。因此,-v $(pwd):/zap/wrk:rw被视为两个参数,第二个被视为要运行的图像的名称。
例如:
# create a directory having spaces, last part is "baz"
mkdir foo\ bar\ baz
# change to that directory
cd foo\ bar\ baz
# attempt to run a container that bind-mounts the current
# directory, and see that it's producing an error:
docker run --rm -v $(pwd):/foo busybox
Unable to find image 'bar:latest' locally
docker: Error response from daemon: pull access denied for bar, repository does not exist or may require 'docker login'.
Run Code Online (Sandbox Code Playgroud)
发生的事情$(foo)是扩展到其完整路径:
pwd
/Users/sebastiaan/Projects/spaces/foo bar baz
Run Code Online (Sandbox Code Playgroud)
因此,运行 docker 命令实际上会运行:
docker run --rm -v /Users/sebastiaan/Projects/spaces/foo bar baz:/foo busybox
Run Code Online (Sandbox Code Playgroud)
并且 docker 将其bar视为您尝试运行的图像的名称
要解决此问题,请在$(pwd);周围加上引号。
docker run --rm -v "$(pwd)":/foo busybox
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4418 次 |
| 最近记录: |