
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本镜像是一个基于 Alpine Linux 的轻量级 Python 运行环境,预装 Python3 及最新稳定版的 Requests(HTTP 库)和 Beautiful Soup(HTML/XML 解析库)。主要用于需要通过 Python 进行网络请求发送(如 API 调用、网页爬取)和 HTML/XML 内容解析的场景,提供安全、精简且易于扩展的执行环境。
python 执行,避免 root 权限暴露风险。/root 目录、/etc/crontabs/root)及敏感权限配置,仅保留必要系统工具。py3-pip(Python 包管理工具)、bash(交互 shell)及基础系统工具(如 shadow、util-linux-misc),支持扩展安装其他 Python 依赖。4.1.1 从 Docker Hub 拉取(推荐)
bashdocker pull docker.io/blairy/requests:latest
4.1.2 本地构建
若需基于源码构建,可使用以下步骤:
./dockerfile)。bashdocker build --compress --pull -t python-requests:local ./dockerfile
容器默认入口点为 python,支持直接执行 Python 命令或挂载外部脚本文件。
4.2.1 直接执行 Python 命令
示例:运行 Python 交互式终端
bashdocker run --rm -it docker.io/blairy/requests:latest
4.2.2 执行本地脚本
将本地 Python 脚本(如 crawler.py)挂载至容器内用户目录 /home/python,并执行:
bash# 假设脚本位于当前目录 ./scripts/crawler.py docker run --rm -v $(pwd)/scripts:/home/python/scripts docker.io/blairy/requests:latest /home/python/scripts/crawler.py
4.2.3 安装额外依赖
容器内置 pip,可通过以下方式安装其他 Python 库(需在运行时指定命令覆盖入口点):
bash# 安装 pandas 库并保留依赖(需挂载持久化目录存储依赖) docker run --rm -v $(pwd)/deps:/home/python/.local docker.io/blairy/requests:latest -m pip install --user pandas
python(UID/GID 未显式指定,由系统自动分配),仅对 /home/python 目录有读写权限,挂载外部目录时需确保权限匹配(可通过 chown -R 1000:1000 ./local_dir 调整本地目录权限,假设 python 用户 UID/GID 为 1000)。--network 参数指定网络模式(如 --network host)。以下为镜像构建逻辑说明,关键步骤如下:
dockerfile# 基于最新 Alpine Linux 构建,确保基础镜像精简 FROM alpine:latest # 安装核心依赖:Python3、Requests、Beautiful Soup 及基础工具 RUN \ apk update --no-cache \ && apk add \ py3-pip \ # Python 包管理工具 py3-beautifulsoup4 \ # HTML/XML 解析库 py3-requests \ # HTTP 请求库 bash \ # 交互式 shell shadow \ # 用户管理工具(useradd 等) util-linux-misc \ # 系统工具(如 chown) \ && apk upgrade # 升级已安装包至最新版本 # 切换至 bash shell,支持数组等高级语法 SHELL ["/bin/bash", "-c"] # 安全加固:清理 root 权限,创建非 root 用户 RUN \ mkdir /home/python \ # 创建用户主目录 && declare -a files=('/etc/shadow' '/etc/passwd' '/etc/group' 'sysctl.conf') \ && for file in "${files[@]}"; do echo "" > $file; done \ # 清空敏感系统文件 && rm -rf /root /etc/crontabs/root /sbin/apk \ # 删除 root 目录及 apk 包管理工具(限制后续修改) && useradd python -d /home/python -s /bin/bash \ # 创建非 root 用户 python && chown -R python /home/python/ \ # 设置用户目录权限 && chmod -R 755 /home/python # 切换至非 root 用户运行 USER python # 入口点:直接启动 Python 解释器 ENTRYPOINT ["/usr/bin/python"]
以下为基于 docker-compose.yml 的部署示例,用于运行一个定时数据采集脚本:
yamlversion: '3.8' services: data-crawler: image: docker.io/blairy/requests:latest volumes: - ./scripts:/home/python/scripts # 挂载本地脚本目录 - ./deps:/home/python/.local # 持久化安装的依赖库 command: /home/python/scripts/定时采集脚本.py # 覆盖默认入口点,执行指定脚本 user: "1000:1000" # 匹配容器内 python 用户的 UID/GID(需根据实际情况调整) restart: unless-stopped # 异常退出后自动重启
启动命令:
bashdocker-compose up -d
pip install --user 安装的依赖默认存储于 /home/python/.local,需挂载该目录至宿主机以避免容器重建后依赖丢失。apk 工具,无法通过包管理器安装系统依赖,如需额外系统工具(如 curl),需基于原 Dockerfile 修改并重新构建镜像。--memory、--cpus 参数限制容器资源使用,避免影响宿主机其他服务。您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务