轩辕镜像
轩辕镜像专业版
个人中心搜索镜像
交易
充值流量我的订单
工具
工单支持镜像收录Run 助手IP 归属地密码生成Npm 源Pip 源
帮助
常见问题我要吐槽
其他
关于我们网站地图

官方QQ群: 13763429

轩辕镜像
镜像详情
snakepacker/python
官方博客使用教程热门镜像工单支持
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。
所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。
轩辕镜像 - 国内开发者首选的专业 Docker 镜像下载加速服务平台 - 官方QQ群:13763429 👈点击免费获得技术支持。
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。

本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

python Docker 镜像下载 - 轩辕镜像

python 镜像详细信息和使用指南

python 镜像标签列表和版本信息

python 镜像拉取命令和加速下载

python 镜像使用说明和配置指南

Docker 镜像加速服务 - 轩辕镜像平台

国内开发者首选的 Docker 镜像加速平台

极速拉取 Docker 镜像服务

相关 Docker 镜像推荐

热门 Docker 镜像下载

python
snakepacker/python
自动构建

python 镜像详细信息

python 镜像标签列表

python 镜像使用说明

python 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

一种基于Ubuntu Jammy构建Python项目的简单方法,提供多种Python版本和工具的Docker镜像,支持将项目打包为紧凑镜像,通过构建和目标阶段分离解决依赖和镜像体积问题。
1 收藏0 次下载activesnakepacker镜像
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源
中文简介版本下载
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源

python 镜像详细说明

python 使用指南

python 配置说明

python 官方文档

构建Python项目的简单方法

!logo

本仓库提供并演示了一种将Python包打包为紧凑Docker镜像的方法,基于现代的Ubuntu Jammy操作系统。

可用镜像

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

ghcr.iodocker.io
ghcr.io/snakepacker/python/allsnakepacker/python:all
ghcr.io/snakepacker/python/all-pillowsnakepacker/python:all-pillow
ghcr.io/snakepacker/python/3.11snakepacker/python:3.11
ghcr.io/snakepacker/python/3.11-pillowsnakepacker/python:3.11-pillow
ghcr.io/snakepacker/python/3.10snakepacker/python:3.10
ghcr.io/snakepacker/python/3.10-pillowsnakepacker/python:3.10-pillow
ghcr.io/snakepacker/python/3.9snakepacker/python:3.9
ghcr.io/snakepacker/python/3.9-pillowsnakepacker/python:3.9-pillow
ghcr.io/snakepacker/python/3.8snakepacker/python:3.8
ghcr.io/snakepacker/python/3.8-pillowsnakepacker/python:3.8-pillow
ghcr.io/snakepacker/python/3.7snakepacker/python:3.7
ghcr.io/snakepacker/python/3.7-pillowsnakepacker/python:3.7-pillow
ghcr.io/snakepacker/python/pylamasnakepacker/python:pylama
ghcr.io/snakepacker/python/pylavasnakepacker/python:pylava
ghcr.io/snakepacker/python/ipythonsnakepacker/python:ipython
ghcr.io/snakepacker/python/certbotsnakepacker/python:certbot
ghcr.io/snakepacker/python/blacksnakepacker/python:black
ghcr.io/snakepacker/python/graysnakepacker/python:gray
ghcr.io/snakepacker/python/ruffsnakepacker/python:ruff
ghcr.io/snakepacker/python/jupyterlabsnakepacker/python:jupyterlab
ghcr.io/snakepacker/python/basesnakepacker/python:base

镜像描述

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

标签信息用途特性
all![]([***]构建阶段包含所有可用Python版本、libpython头文件和编译器
all-pillow![]([***]构建阶段包含所有可用Python版本、libpython头文件、图形库头文件和编译器
3.11![]([***]目标阶段纯Python 3.11
3.10![]([***]目标阶段纯Python 3.10
3.9![]([***]目标阶段纯Python 3.9
3.8![]([***]目标阶段纯Python 3.8
3.7![]([***]目标阶段纯Python 3.7
3.11-pillow![]([***]目标阶段带图形库二进制文件的纯Python 3.11
3.10-pillow![]([***]目标阶段带图形库二进制文件的纯Python 3.10
3.9-pillow![]([***]目标阶段带图形库二进制文件的纯Python 3.9
3.8-pillow![]([***]目标阶段带图形库二进制文件的纯Python 3.8
3.7-pillow![]([***]目标阶段带图形库二进制文件的纯Python 3.7
pylama![]([***]即用型pylama应用镜像(适用于CI)
pylava![]([***]即用型pylava应用镜像(适用于CI)
ipython![]([***]即用型ipython应用镜像
certbot![]([***]即用型certbot应用镜像
black![]([***]即用型black应用镜像(适用于CI)
gray![]([***]即用型gray应用镜像(适用于CI)
ruff![]([***]即用型ruff linter镜像(适用于CI)
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:

#################################################################
####################### 构建阶段 #############################
#################################################################
# 该镜像包含:
# 1. 所有Python版本
# 2. 所需的Python头文件
# 3. C编译器和开发工具
FROM ghcr.io/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.io/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"]

然后构建镜像:

docker build -t ipython .

实用工具

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

apt-install

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

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

使用apt-install可简化为:

apt-install tcpdump

wait-for-port

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

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

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

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

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

find-libdeps

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

保存所需包:

find-libdeps /usr
查看更多 python 相关镜像 →
python logo
python
by library
官方
Python是一种解释型、交互式、面向对象的开源编程语言,其设计理念强调代码的可读性与简洁性,支持多种编程范式,凭借丰富的标准库和第三方库,广泛应用于Web开发、数据分析、人工智能、科学计算、自动化脚本等众多领域,拥有活跃的全球开发者社区,是兼具易用性与强大功能的高效编程工具。
102761B+ pulls
上次更新:1 天前
cimg/python logo
cimg/python
by CircleCI
认证
CircleCI提供的`cimg/python`是专为持续集成构建设计的Docker镜像,包含完整Python版本(通过pyenv),预装pip、pipenv和poetry,适用于CircleCI环境,旨在取代旧版`circleci/python`镜像。
23100M+ pulls
上次更新:10 天前
bitnami/python logo
bitnami/python
by VMware
认证
Bitnami 提供的 Python 安全镜像,基于 Photon Linux 构建,具备加固安全、漏洞管理及合规支持等特性。
315M+ pulls
上次更新:2 天前
ubuntu/python logo
ubuntu/python
by Canonical
认证
这是一个基于Ubuntu系统精雕细琢而成的运行基石,集成了Python运行时环境,通过精简优化的系统底层确保了高效稳定的性能,为Python应用程序提供了可靠的运行载体,无论是开发调试、测试验证还是生产部署场景,都能满足轻量、安全且高效的运行需求,是构建Python应用生态的理想基础组件。
28100K+ pulls
上次更新:16 小时前

常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。

轩辕镜像免费版与专业版有分别支持哪些镜像?

免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。

流量耗尽错误提示

当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

轩辕镜像下载加速使用手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

🔐

登录方式进行 Docker 镜像下载加速教程

通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤

🐧

Linux Docker 镜像下载加速教程

在 Linux 系统上配置轩辕镜像源,支持主流发行版

🖥️

Windows/Mac Docker 镜像下载加速教程

在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统

📦

Docker Compose 镜像下载加速教程

在 Docker Compose 中使用轩辕镜像加速,支持容器编排

📋

K8s containerd 镜像下载加速教程

在 k8s 中配置 containerd 使用轩辕镜像加速

🔧

宝塔面板 Docker 镜像下载加速教程

在宝塔面板中配置轩辕镜像加速,提升服务器管理效率

💾

群晖 NAS Docker 镜像下载加速教程

在 Synology 群晖NAS系统中配置轩辕镜像加速

🐂

飞牛fnOS Docker 镜像下载加速教程

在飞牛fnOS系统中配置轩辕镜像加速

📱

极空间 NAS Docker 镜像下载加速教程

在极空间NAS中配置轩辕镜像加速

⚡

爱快路由 ikuai Docker 镜像下载加速教程

在爱快ikuai系统中配置轩辕镜像加速

🔗

绿联 NAS Docker 镜像下载加速教程

在绿联NAS系统中配置轩辕镜像加速

🌐

威联通 NAS Docker 镜像下载加速教程

在威联通NAS系统中配置轩辕镜像加速

📦

Podman Docker 镜像下载加速教程

在 Podman 中配置轩辕镜像加速,支持多系统

📚

ghcr、Quay、nvcr、k8s、gcr 等仓库下载镜像加速教程

配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤

🚀

专属域名方式进行 Docker 镜像下载加速教程

无需登录即可使用轩辕镜像加速服务,更加便捷高效

需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429

商务:17300950906
|©2024-2025 源码跳动
商务合作电话:17300950906|Copyright © 2024-2025 杭州源码跳动科技有限公司. All rights reserved.