本地用 Docker Compose 跑通一个最小 Python 服务

举报
yd_298384123 发表于 2026/10/26 14:54:08 2026/10/26
【摘要】 很多同学第一次接触容器,会把镜像构建文件、镜像仓库和编排文件混在一起看,反而不知道最小闭环是什么。下面只用一个目录和三个文件,把一个 Python 网络服务在本机跑起来,并说明每一步在解决什么问题。先准备目录 app。里面放主程序、镜像构建文件和编排文件。主程序只做一件事,监听本机端口 8080,收到请求就返回一行纯文本。不要在第一版里加数据库或登录,先确认进程、端口和日志是通的。镜像构建文...

很多同学第一次接触容器,会把镜像构建文件、镜像仓库和编排文件混在一起看,反而不知道最小闭环是什么。下面只用一个目录和三个文件,把一个 Python 网络服务在本机跑起来,并说明每一步在解决什么问题。

先准备目录 app。里面放主程序、镜像构建文件和编排文件。主程序只做一件事,监听本机端口 8080,收到请求就返回一行纯文本。不要在第一版里加数据库或登录,先确认进程、端口和日志是通的。

镜像构建文件保持短。基础镜像选用官方 Python 的 slim 版本,工作目录设为 app,把代码复制进去,启动命令写成用 python 运行主程序。不要在镜像里写死密钥,本地调试用编排文件的环境变量传入即可。

编排文件里声明一个服务。端口映射写成宿主机 8080 对应容器 8080,这样用浏览器访问本机该端口就能打到容器。重启策略设为不自动拉起,失败时方便你看第一次退出码。

启动时使用编排工具的 up 命令,并带上重新构建参数。第一次会拉基础镜像,稍慢是正常的。如果端口被占用,把宿主机端口改成 8081 再试,不要去结束来路不明的进程。

服务起不来时,按这个顺序看,比反复重写文件更快。

第一,用 ps 子命令看状态是退出还是反复重启。
第二,用 logs 子命令看最后几十行。Python 的语法错误、端口已被占用,都会直接出现在这里。
第三,若进程在跑但浏览器打不开,进容器再从容器内部访问同一端口。容器内能通、宿主机不通,多半是端口映射方向写反了。

停止服务用 down 子命令。它会删掉这次创建的容器,但不会删你已经构建的镜像。镜像占用空间时再单独清理无用镜像,避免手滑删掉别的项目。

这套最小闭环适合用来验证三件事。代码能在干净环境启动,端口映射正确,日志看得到。确认之后再加依赖文件、健康检查和多服务,排错范围才不会一下变大。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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