本地开发环境总出问题?用 Docker 先把环境装进口袋
很多项目在别人电脑上能跑,到自己电脑上就报错,多数不是代码问题,而是环境不一致:Python 版本、系统库、数据库版本、环境变量,哪一项差一点,结果就差很多。Docker 的思路是把应用连同它依赖的运行环境一起打包,换一台机器也能按同样的方式跑起来。
先分清三个概念。镜像是一份只读的模板,里面装好了运行环境和应用;容器是镜像跑起来的实例,可以启动、停止、删除;卷是用来保存数据的,容器删了,卷里的数据还在。理解这三点,后面很多命令就好懂了。
动手可以从一个最小例子开始。先写一个 Dockerfile,选一个官方基础镜像,复制代码,安装依赖,声明启动命令:
FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "app.py"]
然后用 docker build -t myapp:1.0 . 构建,再用 docker run -p 8000:8000 myapp:1.0 跑起来。本地有数据库时,别把数据库也塞进同一个容器,用 Compose 把应用和数据库分开写,服务之间用服务名互相访问,配置用环境变量传进去,这样以后换环境只要改配置,不用改代码。
新手常踩的几个坑也值得提前知道。端口被占用时,先查是哪个进程占了端口,而不是反复换端口;文件权限问题多半是卷挂载后宿主和容器用户不一致;镜像越做越大时,检查是不是把缓存、测试数据和本地配置文件也复制进去了;构建很慢时,看看是不是每次都重新安装依赖,合理利用构建缓存能省不少时间。
Docker 不是万能的,它不替你写好代码,也不保证应用本身没有 Bug。但它能把“在我电脑上能跑”变成“在任何一台装了 Docker 的电脑上都能按同样方式跑”,这对交接、联调和上线都很有帮助。下一步可以试试把你手头一个小项目容器化,先跑通,再慢慢补上健康检查、日志和多环境配置。
- 点赞
- 收藏
- 关注作者
评论(0)