运行massrecon Docker容器报OCI runtime create failed错误求解
问题根因
原Dockerfile存在4个核心错误导致启动失败:
- 冗余多阶段构建声明:开头的
FROM python:3.6属于无效配置,多阶段构建未做文件传递,该阶段内容完全不会进入最终镜像 - 未拉取对应源码:仅通过pip安装仓库包不会在工作目录生成
massrecon.py文件,启动时自然找不到目标脚本 - ENTRYPOINT语法错误:exec数组格式错误,将命令、参数、多余空格合并为单个字符串,Docker会把整个字符串当做可执行文件名查找,不存在对应文件
- 冗余安装配置:kali镜像默认已预装Python3和pip,重复安装只会增加镜像体积,且
--user参数安装的依赖默认不在全局PATH中,会触发隐式依赖找不到问题
解决方案
1. 替换Dockerfile内容为以下版本
# syntax=docker/dockerfile:1 FROM kalilinux/kali-bleeding-edge:latest # 国内用户可取消下一行注释更换清华源提升安装速度 # RUN sed -i "s@http://http.kali.org/kali@https://mirrors.tuna.tsinghua.edu.cn/kali@g" /etc/apt/sources.list # 安装系统依赖 RUN apt-get update && apt-get install -y --no-install-recommends \ sudo git python3 python3-pip \ && apt-get -y autoremove \ && apt-get -y autoclean \ && rm -rf /var/lib/apt/lists/* # 设置工作目录 WORKDIR /opt/massrecon # 拉取massrecon源码到工作目录 RUN git clone https://github.com/mikaelkall/massrecon.git . # 安装Python依赖 COPY requirements.txt ./ RUN pip3 install --no-cache-dir -r requirements.txt RUN pip3 install --no-cache-dir . # 配置sudo路径(按需保留) RUN echo "Defaults secure_path=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" >> /etc/sudoers # 正确配置启动入口 ENTRYPOINT ["python3", "massrecon.py"]
2. 执行构建与验证
- 重新构建镜像:
sudo docker build -t massrecon . - 基础功能验证:
sudo docker run -it massrecon --help,正常会输出massrecon的参数帮助信息 - 实际使用可挂载本地目录保存扫描结果,示例:
sudo docker run -it -v $(pwd)/scan_result:/opt/massrecon/output massrecon -d 目标域名
内容的提问来源于stack exchange,提问作者sgt787
相关产品推荐
相关产品推荐

