轩辕镜像 官方专业版
轩辕镜像
专业版
轩辕镜像 官方专业版
轩辕镜像
专业版
首页个人中心搜索镜像
交易
充值流量¥7起我的订单
文档
工具
提交工单页面收录
python

snakepacker/python

snakepacker
自动构建

一种基于Ubuntu Jammy构建Python项目的简单方法,提供多种Python版本和工具的Docker镜像,支持将项目打包为紧凑镜像,通过构建和目标阶段分离解决依赖和镜像体积问题。

1 次收藏下载次数: 0状态:自动构建维护者:snakepacker仓库类型:镜像最近更新:11 个月前
让 AI 帮你使用轩辕镜像? · 展开查看说明 · 点击收起说明

如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。

中文简介
下载命令
镜像标签列表与下载命令
轩辕镜像,不浪费每一次拉取。
点击查看

构建Python项目的简单方法

!https://github.com/snakepacker/python/raw/master/logo.png

本仓库提供并演示了一种将Python包打包为紧凑Docker镜像的方法,基于现代的https://releases.ubuntu.com/jammy/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E3%80%82

可用镜像

本项目同时在官方Docker仓库和GitHub Container Registry(ghcr.io)提供。

https://github.com/orgs/snakepacker/repositorieshttps://hub.docker.com/r/snakepacker/python
https://github.com/orgs/snakepacker/packages/container/package/python%2Fallhttps://hub.docker.com/r/snakepacker/python/tags?page=1&name=all
https://github.com/orgs/snakepacker/packages/container/package/python%2Fall-pillowhttps://hub.docker.com/r/snakepacker/python/tags?page=1&name=all-pillow
https://github.com/orgs/snakepacker/packages/container/package/python%2F3.11https://hub.docker.com/r/snakepacker/python/tags?page=1&name=3.11
https://github.com/orgs/snakepacker/packages/container/package/python%2F3.11-pillowhttps://hub.docker.com/r/snakepacker/python/tags?page=1&name=3.11-pillow
https://github.com/orgs/snakepacker/packages/container/package/python%2F3.10https://hub.docker.com/r/snakepacker/python/tags?page=1&name=3.10
https://github.com/orgs/snakepacker/packages/container/package/python%2F3.10-pillowhttps://hub.docker.com/r/snakepacker/python/tags?page=1&name=3.10-pillow
https://github.com/orgs/snakepacker/packages/container/package/python%2F3.9https://hub.docker.com/r/snakepacker/python/tags?page=1&name=3.9
https://github.com/orgs/snakepacker/packages/container/package/python%2F3.9-pillowhttps://hub.docker.com/r/snakepacker/python/tags?page=1&name=3.9-pillow
https://github.com/orgs/snakepacker/packages/container/package/python%2F3.8https://hub.docker.com/r/snakepacker/python/tags?page=1&name=3.8
https://github.com/orgs/snakepacker/packages/container/package/python%2F3.8-pillowhttps://hub.docker.com/r/snakepacker/python/tags?page=1&name=3.8-pillow
https://github.com/orgs/snakepacker/packages/container/package/python%2F3.7https://hub.docker.com/r/snakepacker/python/tags?page=1&name=3.7
https://github.com/orgs/snakepacker/packages/container/package/python%2F3.7-pillowhttps://hub.docker.com/r/snakepacker/python/tags?page=1&name=3.7-pillow
https://github.com/orgs/snakepacker/packages/container/package/python%2Fpylamahttps://hub.docker.com/r/snakepacker/python/tags?page=1&name=pylama
https://github.com/orgs/snakepacker/packages/container/package/python%2Fpylavahttps://hub.docker.com/r/snakepacker/python/tags?page=1&name=pylava
https://github.com/orgs/snakepacker/packages/container/package/python%2Fipythonhttps://hub.docker.com/r/snakepacker/python/tags?page=1&name=ipython
https://github.com/orgs/snakepacker/packages/container/package/python%2Fcertbothttps://hub.docker.com/r/snakepacker/python/tags?page=1&name=certbot
https://github.com/orgs/snakepacker/packages/container/package/python%2Fblackhttps://hub.docker.com/r/snakepacker/python/tags?page=1&name=black
https://github.com/orgs/snakepacker/packages/container/package/python%2Fgrayhttps://hub.docker.com/r/snakepacker/python/tags?page=1&name=gray
https://github.com/orgs/snakepacker/packages/container/package/python%2Fruffhttps://hub.docker.com/r/snakepacker/python/tags?page=1&name=ruff
https://github.com/orgs/snakepacker/packages/container/package/python%2Fjupyterlabhttps://hub.docker.com/r/snakepacker/python/tags?page=1&name=jupyterlab
https://github.com/orgs/snakepacker/packages/container/package/python%2Fbasehttps://hub.docker.com/r/snakepacker/python/tags?page=1&name=base

镜像描述

根据用途和特性,镜像分类如下:

标签信息用途特性
all构建阶段包含所有可用Python版本、libpython头文件和编译器
all-pillow构建阶段包含所有可用Python版本、libpython头文件、图形库头文件和编译器
https://docs.python.org/3/whatsnew/3.11.html目标阶段纯Python 3.11
https://docs.python.org/3/whatsnew/3.10.html目标阶段纯Python 3.10
https://docs.python.org/3/whatsnew/3.9.html目标阶段纯Python 3.9
https://docs.python.org/3/whatsnew/3.8.html目标阶段纯Python 3.8
https://docs.python.org/3/whatsnew/3.7.html目标阶段纯Python 3.7
https://docs.python.org/3/whatsnew/3.11.html目标阶段带图形库二进制文件的纯Python 3.11
https://docs.python.org/3/whatsnew/3.10.html目标阶段带图形库二进制文件的纯Python 3.10
https://docs.python.org/3/whatsnew/3.9.html目标阶段带图形库二进制文件的纯Python 3.9
https://docs.python.org/3/whatsnew/3.8.html目标阶段带图形库二进制文件的纯Python 3.8
https://docs.python.org/3/whatsnew/3.7.html目标阶段带图形库二进制文件的纯Python 3.7
https://pylama.readthedocs.io/en/latest/即用型pylama应用镜像(适用于CI)
https://pylavadocs.readthedocs.io/en/latest/即用型pylava应用镜像(适用于CI)
https://jupyter.org即用型ipython应用镜像
https://certbot.eff.org即用型certbot应用镜像
https://black.readthedocs.io/en/stable/即用型black应用镜像(适用于CI)
https://github.com/dizballanze/gray即用型gray应用镜像(适用于CI)
https://github.com/astral-sh/ruff即用型ruff linter镜像(适用于CI)
https://github.com/jupyterlab/jupyterlab即用型jupyterlab镜像
base公共层

核心概念

该方法的核心思想是:使用功能齐全的重型镜像(如ghcr.io/snakepacker/python:all,包含所有必要的头文件、库、编译器等)为你的包构建virtualenv,然后将其复制到具有合适Python版本的轻量级基础镜像中。

采用原因

为何需要如此复杂的流程?你可能会认为直接将Python项目目录COPY到Docker容器中更简单,乍一看似乎合理,但直接复制会导致以下问题:

  • 在不同操作系统上生成的.pyc文件可能会意外打包到Docker镜像中,导致Python每次启动镜像时尝试重写正确的.pyc文件。如果以只读模式运行镜像,应用会崩溃。

  • 很可能会打包垃圾文件:pytest和tox缓存、开发者的virtualenv等,这些文件只会增加最终镜像的大小。

  • 缺少明确的入口点。最终用户难以确定可以运行哪些命令(尽管你可能实现了-h或--help参数)。

  • 默认情况下,tox将你的包解释为Python模块,例如在准备环境时尝试运行pip install .。

当然,你可以通过hack、特定设置、.dockerignore文件等解决这些问题,但这对用户来说不直观且难以理解。因此,建议花少量时间仔细打包你的包,让用户能够愉快地使用。

使用示例

例如,你可以构建jupyter notebook。只需创建包含以下内容的Dockerfile:

Dockerfile
#################################################################
####################### 构建阶段 #############################
#################################################################
# 该镜像包含:
# 1. 所有Python版本
# 2. 所需的Python头文件
# 3. C编译器和开发工具
FROM ***-ghcr.xuanyuan.run/snakepacker/python:all as builder

# 在Python 3.10上创建virtualenv
# 目标文件夹在构建阶段和目标阶段应保持一致
RUN python3.10 -m venv /usr/share/python3/app

# 安装目标包
RUN /usr/share/python3/app/bin/pip install -U pip 'ipython[notebook]'

# 查找所需的系统库及其包
RUN find-libdeps /usr/share/python3/app > /usr/share/python3/app/pkgdeps.txt

#################################################################
####################### 目标阶段 ############################
#################################################################
# 使用与构建阶段相同版本的镜像
FROM ***-ghcr.xuanyuan.run/snakepacker/python:3.10

# 将virtualenv复制到目标镜像
COPY --from=builder /usr/share/python3/app /usr/share/python3/app

# 安装所需的库包
RUN xargs -ra /usr/share/python3/app/pkgdeps.txt apt-install

# 创建指向目标二进制文件的符号链接(仅为方便)
RUN ln -snf /usr/share/python3/app/bin/ipython /usr/bin/

CMD ["ipython"]

然后构建镜像:

bash
docker build -t ipython .

实用工具

所有镜像都包含易于使用的包装器,便于镜像构建。

apt-install

简单的bash脚本,主要用途是在通过apt-get install安装软件后自动清理apt缓存和临时文件。通常你需要编写:

bash
apt-get update && \
apt-get install -y tcpdump && \
rm -fr /var/lib/apt/lists /var/lib/cache/* /var/log/*

使用apt-install可简化为:

bash
apt-install tcpdump

wait-for-port

等待一个或多个TCP端口可用的Python脚本,非常适用于测试和docker-compose环境。

bash
wait-for-port --period=0.5 --timeout=600 postgres:5432 pgbouncer:6432 && python myscript.py

或更简洁的写法(使用上述示例中的默认值):

bash
wait-for-port postgres:5432 pgbouncer:6432 && python myscript.py

该脚本会尝试连接指定的端点,直到超时或端点可连接为止。

find-libdeps

查找二进制*.so文件并解析所需系统包以安装库依赖的shell脚本。

保存所需包:

bash
find-libdeps /usr

镜像拉取方式

您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

轩辕镜像加速拉取命令点我查看更多 python 镜像标签

docker pull docker.xuanyuan.run/snakepacker/python:<标签>

使用方法:

  • 登录认证方式
  • 免认证方式

DockerHub 原生拉取命令

docker pull snakepacker/python:<标签>

轩辕镜像配置手册

按平台快速找到配置文档

一键安装

一键安装 Docker

Linux Docker 一键安装

AI

用 AI 使用轩辕镜像

agents.md · AI 对话 · 提示词

Docker

登录仓库拉取

登录认证 · 私有仓库

专属域名拉取

免登录 · 高速拉取

Linux

Docker 镜像配置

Windows / Mac

Docker Desktop 配置

MacOS OrbStack

OrbStack 容器

Apple Container

macOS 原生容器

Docker Compose

Compose 项目配置

NAS

群晖

Synology 配置

飞牛

fnOS 镜像配置

绿联

绿联 NAS

威联通

QNAP 配置

极空间

极空间 NAS

Unraid

Unraid NAS

企业仓库

其他仓库

ghcr · Quay · nvcr

Harbor 镜像源

Proxy Repository 对接

Portainer 镜像源

Registries 配置

Nexus 镜像源

Docker Proxy 缓存

开发工具

Dev Containers

VS Code 开发容器

Podman

Podman 配置指南

Singularity / Apptainer

HPC 科学计算容器

Kubernetes

K8s Containerd

Kubernetes · Containerd

K3s

轻量级集群

面板 / 网络

爱快路由

爱快 4.0 · iKuai 镜像加速

宝塔面板

一键配置镜像源

需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

功能

版本功能对比

功能对比 · 版本选择

支持的镜像仓库

Docker Hub · GCR · GHCR

专属域名用法

专属域名 · 开启停用 · 多仓库

新手拉取配置

登录 · 专属域名 · 配置

docker search 限制

专属域名 · Hub 搜索

不支持 push

仅支持 pull · 不支持

拉取速度原因

带宽 · 缓存 · 冷热镜像

错误码

402 与流量用尽

402 · 流量包 · 充值

401 认证失败

401 · docker login

manifest unknown

标签错误 · 镜像不存在

410 Gone 排查

410 · Docker 升级

429 限流

免费版 · 专业版 · 企业版 · 请求频率

其他报错

DNS 超时

DNS 解析 · 网络超时

TLS 证书失败

no matching manifest(架构)

账号

失败是否计费

manifest · blob · 计费

申请开票(企业 / 个人)

开票 · 发票 · 工单

修改登录密码

网站 · 仓库 · 重置

注销账户

工单 · 数据 · 注销

原理

mirrors 不生效

daemon.json · 重启

去掉域名前缀

docker tag · 重命名

指定架构拉取

ARM64 · AMD64 · 多架构

latest 与「最新」

digest · 版本号 · 标签

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

用户头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
snakepacker/python
定价查看流量套餐与价格
博客Docker 镜像公告与技术博客
专业版 · 高速稳定拉取镜像
高速镜像下载·在线技术支持·99.95% SLA 保障·付费会员免广告
50GB 仅 ¥7/年
专业版 · 高速稳定拉取镜像
50GB 仅 ¥7/年
高速镜像下载·在线技术支持·99.95% SLA 保障·付费会员免广告
用户协议·隐私政策·增值电信业务经营许可证:浙B2-20261007·©2024-2026 源码跳动©2024-2026 杭州源码跳动科技有限公司·商务合作:点击复制邮箱

更多 python 镜像推荐

python logo

library/python

Docker 官方镜像
Python是一种解释型、交互式、面向对象的开源编程语言,其设计理念强调代码的可读性与简洁性,支持多种编程范式,凭借丰富的标准库和第三方库,广泛应用于Web开发、数据分析、人工智能、科学计算、自动化脚本等众多领域,拥有活跃的全球开发者社区,是兼具易用性与强大功能的高效编程工具。
1万 次收藏10亿+ 次下载
3 天前更新
circleci/python logo

circleci/python

circleci
CircleCI提供的Python扩展镜像,基于官方Python镜像,预装开发和CI常用工具(如git、ssh、docker等),默认使用非root用户,支持浏览器测试等变体,适用于CI/CD流程和开发环境。
116 次收藏1亿+ 次下载
4 年前更新
cimg/python logo

cimg/python

cimg
CircleCI提供的`cimg/python`是专为持续集成构建设计的Docker镜像,包含完整Python版本(通过pyenv),预装pip、pipenv和poetry,适用于CircleCI环境,旨在取代旧版`circleci/python`镜像。
25 次收藏1亿+ 次下载
1 个月前更新
demisto/python logo

demisto/python

demisto
基于python:2.7的Demisto基础Python镜像,包含requests、olefile、pip和stix等基本Python库,适用于构建依赖这些特定库的Python 2.7应用环境。
5 次收藏100万+ 次下载
7 个月前更新
ubuntu/python logo

ubuntu/python

Ubuntu 官方镜像
这是一个基于Ubuntu系统精雕细琢而成的运行基石,集成了Python运行时环境,通过精简优化的系统底层确保了高效稳定的性能,为Python应用程序提供了可靠的运行载体,无论是开发调试、测试验证还是生产部署场景,都能满足轻量、安全且高效的运行需求,是构建Python应用生态的理想基础组件。
33 次收藏10万+ 次下载
6 天前更新
okteto/python logo

okteto/python

okteto
该镜像包含用于与Okteto CLI配合使用的Python开发环境,Okteto是面向开发者的Kubernetes工具。
10万+ 次下载
4 个月前更新

查看更多 python 相关镜像

更多相关 Docker 镜像与资源

以下是 snakepacker/python 相关的常用 Docker 镜像,适用于 Web 开发、数据科学、机器学习 等不同场景:

  • library/python Docker 镜像说明(Python 运行时,适合数据科学和 Web 开发)
  • demisto/python Docker 镜像说明(Python 运行时,Demisto 安全自动化平台)
  • chainguard/python Docker 镜像说明(Python 运行时,Chainguard 安全加固版本)
  • intel/python Docker 镜像说明(Python 运行时,Intel 优化版本,适合高性能计算)
  • cimg/python Docker 镜像说明(Python 运行时,CI/CD 优化版本)