You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Docker容器内Bandit扫描输出文件复制到主机?

解决Docker容器内Bandit扫描输出文件的保存问题

先修正你的Dockerfile问题

你的CMD指令写法有误,exec格式(方括号)需要将命令拆分为独立参数,否则容器会无法找到对应命令。修正后的Dockerfile如下:

FROM python:3-alpine
WORKDIR /
RUN pip install bandit
RUN apk update && apk upgrade
RUN apk add git
RUN git clone https://github.com/PyCQA/bandit.git ./code-to-scan
# 修正CMD的参数拆分格式
CMD ["python", "-m", "bandit", "-r", "./code-to-scan", "-o", "bandit.txt"]

方法一:手动复制容器内的输出文件

容器运行完成后(即使已退出),可通过docker cp命令将输出文件复制到主机:

  1. 构建镜像:
    docker build -t bandit-scan .
    
  2. 运行容器并指定名称(方便后续操作):
    docker run --name bandit-run bandit-scan
    
  3. 将容器内的bandit.txt复制到主机当前目录:
    docker cp bandit-run:/bandit.txt ./bandit-result.txt
    
  4. (可选)删除已完成任务的容器:
    docker rm bandit-run
    

方法二:使用Docker挂载卷(推荐)

通过挂载主机目录到容器内,让Bandit直接将输出写入主机目录,容器销毁后文件依然保留:

  1. 在主机创建用于存放输出的目录:
    mkdir ./bandit-output
    
  2. 运行容器时挂载目录,并指定Bandit输出到挂载路径:
    docker run -v $(pwd)/bandit-output:/output bandit-scan python -m bandit -r ./code-to-scan -o /output/bandit.txt
    
    也可以修改Dockerfile默认输出到挂载目录,简化运行命令:
    FROM python:3-alpine
    WORKDIR /
    RUN pip install bandit
    RUN apk update && apk upgrade
    RUN apk add git
    RUN git clone https://github.com/PyCQA/bandit.git ./code-to-scan
    # 创建容器内的输出目录,用于挂载
    RUN mkdir /output
    CMD ["python", "-m", "bandit", "-r", "./code-to-scan", "-o", "/output/bandit.txt"]
    
    之后只需运行:
    docker run -v $(pwd)/bandit-output:/output bandit-scan
    
    扫描完成后,主机的./bandit-output/bandit.txt就是扫描结果。

内容的提问来源于stack exchange,提问作者Steve

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 07:30:50