
ceecko/pythonPython官方Docker镜像是由Docker官方维护的标准化运行环境,内置Python解释器、包管理工具(pip)及基础依赖库,旨在简化Python应用的开发、测试与部署流程。镜像支持多版本Python及多种基础系统(如Debian、Alpine),确保跨环境一致性和快速上手体验。
提供预配置的Python运行环境,适用于:
python:3.12):基于Debian,包含完整系统工具,功能全面python:3.12-slim):精简Debian基础,体积较小,平衡功能与镜像大小python:3.12-alpine):基于Alpine Linux,极小体积(约50-100MB),适合资源受限场景python:3.12-windowsservercore):适用于Windows容器环境venv模块)从Docker Hub拉取官方镜像:
bash# 拉取最新稳定版(默认标签为latest,指向最新Python 3版本) docker pull python:latest # 拉取指定版本(如Python 3.12标准版) docker pull python:3.12 # 拉取Slim变体(精简Debian基础) docker pull python:3.12-slim # 拉取Alpine变体(最小体积) docker pull python:3.12-alpine
启动容器并进入Python交互模式:
bashdocker run -it --rm python:3.12 python
参数说明:
-it启用交互终端,--rm退出后自动删除容器
假设本地存在app.py:
pythonprint("Hello from Docker Python!")
通过容器运行脚本(挂载本地目录至容器内/app):
bashdocker run --rm -v "$(pwd)":/app -w /app python:3.12 python app.py
参数说明:
-v挂载本地当前目录至容器/app,-w设置工作目录为/app
创建Dockerfile定义应用环境:
dockerfile# 基础镜像选择Python 3.12-slim FROM python:3.12-slim # 设置工作目录 WORKDIR /app # 复制依赖文件并安装 COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt # 复制应用代码 COPY . . # 运行应用(假设入口为main.py) CMD ["python", "main.py"]
构建并运行:
bashdocker build -t my-python-app . docker run --rm my-python-app
创建docker-compose.yml管理多服务应用:
yamlversion: '3' services: python-app: image: python:3.12-slim volumes: - ./src:/app # 挂载本地代码目录 working_dir: /app command: python main.py environment: - PYTHONUNBUFFERED=1 # 禁用输出缓冲(日志实时显示) - PYTHONDONTWRITEBYTECODE=1 # 不生成.pyc文件 ports: - "5000:5000" # 端口映射(若应用有网络服务)
启动服务:
bashdocker-compose up
标签格式:python:<version>-<variant>,例如:
python:3.12:Python 3.12 + Debian基础(标准版)python:3.12-slim:Python 3.12 + 精简Debian(平衡体积与功能)python:3.12-alpine:Python 3.12 + Alpine Linux(最小体积)python:latest:指向最新稳定版Python 3| 环境变量 | 作用说明 | 推荐值 |
|---|---|---|
PYTHONUNBUFFERED | 禁用标准输出缓冲,确保日志实时输出 | 1(生产环境) |
PYTHONDONTWRITEBYTECODE | 禁止生成.pyc字节码文件,减少磁盘占用 | 1 |
PIP_NO_CACHE_DIR | 禁用pip缓存,减小镜像体积(构建时用) | off |
PIP_DISABLE_PIP_VERSION_CHECK | 禁用pip版本检查,加速依赖安装 | 1 |
配置示例(Dockerfile中设置):
dockerfileENV PYTHONUNBUFFERED=1 \ PYTHONDONTWRITEBYTECODE=1 \ PIP_NO_CACHE_DIR=off
卷挂载:通过-v挂载代码目录或数据目录,实现热更新(开发环境)或数据持久化:
bashdocker run --rm -v "$(pwd)/src":/app/src -v "$(pwd)/data":/app/data python:3.12 python src/main.py
端口映射:若应用提供网络服务(如Flask、Django),通过-p映射容器端口至主机:
bashdocker run --rm -p 5000:5000 python:3.12 python -m flask run --host=0.0.0.0
docker pull python:<tag>获取最新版本
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务