资讯中心

docker-compose.yaml 是“开发/测试环境”的利器,而 Kubernetes 配置是“生产环境”的标准。

📅 2026/7/19 23:12:11
docker-compose.yaml 是“开发/测试环境”的利器,而 Kubernetes 配置是“生产环境”的标准。
很多初学者都会混淆 Docker 和 Kubernetes 的职责。我来给你打个比方你就明白了Docker 是“打包车间”Kubernetes 是“调度中心”。在这个项目中它们各司其职配合完成从代码到运行服务的完整流程。简单来说docker-compose.yaml是“开发/测试环境”的利器而 Kubernetes 配置是“生产环境”的标准 Docker Compose本地开发的“快速启动器”docker-compose.yaml的核心目标是在单台机器比如你的笔记本电脑上快速启动和运行整个应用栈。目的让开发者在本地能一键启动所有服务后端、前端、数据库等方便调试代码、验证功能。特点简单一条docker-compose up命令就能启动所有容器。轻量不需要安装和配置复杂的 Kubernetes 集群。代码卷挂载可以将本地代码目录挂载到容器内实现代码热更新修改代码后无需重新构建镜像就能看到效果。☸️ Kubernetes生产环境的“大规模调度器”Kubernetes 配置文件k8s/目录下的 YAML 文件的目标是在多台服务器集群上大规模、高可靠地运行和管理容器。目的提供生产级的高可用、自动伸缩、滚动更新、自愈能力。特点复杂需要理解 Pod、Service、Ingress、ConfigMap 等概念。强大支持跨多台机器的部署、负载均衡、自动故障恢复。声明式通过 YAML 文件描述“期望状态”Kubernetes 会持续确保实际状态与之相符。 在这个项目中的分工协作它们的关系不是“二选一”而是“接力跑”阶段工具目的 开发阶段docker-compose.yaml在本地快速启动应用写代码、做测试、调 Bug。 构建阶段Dockerfile将应用打包成标准化的镜像。☸️ 部署阶段k8s/*.yaml或helm/*将镜像部署到生产或预发布 Kubernetes 集群。在这个项目中典型的工作流是这样的开发者在本地修改camp-backend的代码。运行docker-compose up -d所有服务包括后端的 FastAPI 服务、前端的静态服务器等都在 Docker 容器中启动。开发者访问http://localhost:3004进行功能验证修改代码后容器内会实时生效得益于卷挂载。功能验证通过后开发者将代码推送到 GitHub。GitHub ActionsCI/CD自动触发使用Dockerfile构建生产级镜像。将镜像推送到 GHCR。使用k8s/*.yaml或helm/*自动部署到 Kubernetes 集群。运维人员或 GitOps 工具在 Kubernetes 集群上管理应用的滚动更新、伸缩和监控。 这个项目中可能会有的docker-compose.yaml虽然你之前看到项目里没有为数据库单独建镜像但在docker-compose.yaml中它通常会这样组织yaml# 一个典型的 docker-compose.yaml 示例 services: camp-backend: build: ./camp-backend # 使用本地 Dockerfile 构建 ports: - 8000:8000 volumes: - ./camp-backend:/app # 挂载本地代码实现热更新 environment: - DATABASE_URLsqlite:///./camp.db camp-web-frontend: build: ./camp-web-frontend ports: - 3004:3004 volumes: - ./camp-web-frontend:/app # 同样挂载方便前端开发 # 注意这里可能没有单独的数据库服务 # 因为后端使用的是 SQLite 文件直接挂载卷就够了。注意在开发环境下你甚至可能不需要在docker-compose.yaml里拉取一个独立的数据库镜像因为项目用了 SQLite 文件这在单机环境下非常方便。 给你的学习建议对于你这个学生来说正确的学习顺序是先用docker-compose在本地把项目跑起来亲眼看到它运作这会给你最直接的成就感。然后研究Dockerfile理解镜像是如何构建的。最后学习k8s/和helm/此时你对应用的结构和运行方式已有了解再去看 Kubernetes 的部署配置会更加清晰。所以docker-compose.yaml是你的“练习场”Kubernetes 配置是你的“考场”。两者结合学习能帮你建立从开发到生产的完整 DevOps 视角。