Linux 下用 Docker 搭建 Python 开发环境:从零开始的极简指南

举报
yd_291533083 发表于 2026/11/11 08:58:26 2026/11/11
【摘要】 刚学 Python 的人常遇到一个麻烦:本机装了多个项目,一个要 Python 3.9,一个要 3.12,依赖版本互相打架;换一台电脑,又得把环境从头配一遍。Docker 能把“环境”本身装进一个可复制的箱子里:镜像走到哪,环境就跟到哪。下面用一个最小的例子,在 Linux 上把 Python 开发环境跑起来。 一、准备工作:装好 Docker以 Ubuntu 为例,先安装 Docker,然...

刚学 Python 的人常遇到一个麻烦:本机装了多个项目,一个要 Python 3.9,一个要 3.12,依赖版本互相打架;换一台电脑,又得把环境从头配一遍。Docker 能把“环境”本身装进一个可复制的箱子里:镜像走到哪,环境就跟到哪。下面用一个最小的例子,在 Linux 上把 Python 开发环境跑起来。

一、准备工作:装好 Docker

以 Ubuntu 为例,先安装 Docker,然后确认它能正常工作:

sudo snap install docker
docker --version
docker run hello-world

看到 Hello from Docker! 就说明 Docker 已经就绪。把当前用户加入 docker 组之后,日常使用就不用每次都加 sudo:

sudo usermod -aG docker $USER

改完组需要重新登录终端才生效。

二、写一个最小的 Dockerfile

新建一个空目录,放两个文件。先写 requirements.txt,列出依赖:

requests==2.32.3

再写 Dockerfile:

FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["python", "main.py"]

这几行各有分工:FROM 选基础镜像,slim 版体积小、启动快;WORKDIR 设定工作目录;COPY 把依赖清单拷进去;RUN 在镜像构建时安装依赖;最后的 CMD 决定容器启动后默认执行的命令。单独把 requirements.txt 先 COPY 进去再安装,是为了利用 Docker 的层缓存——以后只改代码不改依赖时,构建会直接复用已安装的层,速度快很多。

再写一个 main.py 验证:

import requests

print("requests 版本:", requests.__version__)
print("Hello, Docker + Python!")

三、构建镜像并运行

在目录里执行构建:

docker build -t my-python-app .

构建成功后运行:

docker run --rm -it my-python-app

--rm 表示容器退出后自动删除,it 则是交互模式。想在开发时边改代码边验证,可以把代码目录挂载进容器:

docker run --rm -it -v $(pwd):/app my-python-app bash

-v 把宿主机的当前目录映射到容器的 /app,本地改一行代码,容器里立刻就能看到,不用反复构建镜像。进入容器后,python main.py 随改随跑。

四、日常排障的五个命令

容器用久了,最常用的是下面这组命令:

  • docker ps:查看正在运行的容器。
  • docker ps -a:连已退出的容器一起看。
  • docker logs 容器名:看容器输出的日志,程序闪退先查这里。
  • docker exec -it 容器名 bash:进入一个正在运行的容器里调试。
  • docker images 和 docker system prune:前者看本地镜像,后者清理用不上的镜像和容器,磁盘紧张时最管用。

五、新手最容易踩的三个坑

第一,别在容器里反复 pip install 却不写进 Dockerfile 和 requirements.txt。容器删了就没了,依赖必须落到文件里,环境才能复现。

第二,记得写 .dockerignore。把 .git、__pycache__、虚拟环境目录排除在构建上下文之外,否则构建又慢又容易把本地垃圾带进镜像。

第三,构建镜像时可以给 pip 配置国内镜像源加速安装,也可以给 pip install 加上 --no-cache-dir,避免缓存文件把镜像体积撑大。

小结

用 Docker 管 Python 环境,核心就三步:写 Dockerfile 把环境“写下来”,docker build 把环境“打成包”,docker run 把环境“跑起来”。环境跟着镜像走,换机器、换系统、给同事同步,都只要同一条命令。熟练这套流程后,还可以再学 Docker Compose,把数据库、缓存这些配套服务也一起编排进来,一套命令拉起整个开发环境。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。