本地用 Docker Compose 跑通一个最小 Python 服务
很多同学第一次接触容器,会把镜像构建文件、镜像仓库和编排文件混在一起看,反而不知道最小闭环是什么。下面只用一个目录和三个文件,把一个 Python 网络服务在本机跑起来,并说明每一步在解决什么问题。
先准备目录 app。里面放主程序、镜像构建文件和编排文件。主程序只做一件事,监听本机端口 8080,收到请求就返回一行纯文本。不要在第一版里加数据库或登录,先确认进程、端口和日志是通的。
镜像构建文件保持短。基础镜像选用官方 Python 的 slim 版本,工作目录设为 app,把代码复制进去,启动命令写成用 python 运行主程序。不要在镜像里写死密钥,本地调试用编排文件的环境变量传入即可。
编排文件里声明一个服务。端口映射写成宿主机 8080 对应容器 8080,这样用浏览器访问本机该端口就能打到容器。重启策略设为不自动拉起,失败时方便你看第一次退出码。
启动时使用编排工具的 up 命令,并带上重新构建参数。第一次会拉基础镜像,稍慢是正常的。如果端口被占用,把宿主机端口改成 8081 再试,不要去结束来路不明的进程。
服务起不来时,按这个顺序看,比反复重写文件更快。
第一,用 ps 子命令看状态是退出还是反复重启。
第二,用 logs 子命令看最后几十行。Python 的语法错误、端口已被占用,都会直接出现在这里。
第三,若进程在跑但浏览器打不开,进容器再从容器内部访问同一端口。容器内能通、宿主机不通,多半是端口映射方向写反了。
停止服务用 down 子命令。它会删掉这次创建的容器,但不会删你已经构建的镜像。镜像占用空间时再单独清理无用镜像,避免手滑删掉别的项目。
这套最小闭环适合用来验证三件事。代码能在干净环境启动,端口映射正确,日志看得到。确认之后再加依赖文件、健康检查和多服务,排错范围才不会一下变大。
- 点赞
- 收藏
- 关注作者
评论(0)