部署多服务应用
使用 Docker Compose 部署包含数据库和后端服务的全栈应用
部署多服务应用 是 CoddyKit 上的免费 Docker & DevOps Fundamentals 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Docker & DevOps Fundamentals 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Docker & DevOps Fundamentals 课程共包含 4 节课。
部署多服务应用程序
欢迎!在本课中,您将学习如何使用 Docker Compose 让一个全栈应用程序上线。
您将了解如何定义 Web 应用和数据库等多个服务,然后统一部署和管理它们。

我们的示例:Web 与数据库
我们将部署一个连接到数据库的简单 Web 应用程序。这是许多实际应用程序中常见的架构。
- Web 服务:提供基础网页的 Python Flask 应用程序。
- 数据库服务:用于存储数据的 PostgreSQL 数据库。
Docker Compose 让编排这两个服务变得十分简单!
构建 Web 镜像
我们的 Web 服务需要专用的 Docker 镜像。下面是一个用于构建 Python Flask 应用程序的简化版 Dockerfile。
它会安装 Flask 和 PostgreSQL 连接器,然后运行我们的 app.py。
FROM python:3.9-slim-buster
WORKDIR /app
COPY . /app
RUN pip install --no-cache-dir flask psycopg2-binary
EXPOSE 5000
CMD ["python", "app.py"]`docker-compose.yml`
这个 docker-compose.yml 文件定义了两个服务:web 和 db。请注意,web 服务会根据我们的 Dockerfile 进行构建,并使用环境变量连接到 db 服务。
version: '3.8'
services:
web:
build: .
ports:
- "5000:5000"
environment:
DB_HOST: db
DB_NAME: mydatabase
DB_USER: user
DB_PASSWORD: password
depends_on:
- db
db:
image: postgres:13
environment:
POSTGRES_DB: mydatabase
POSTGRES_USER: user
POSTGRES_PASSWORD: password
volumes:
- db_data:/var/lib/postgresql/data
volumes:
db_data:启动服务
要启动 docker-compose.yml 文件中定义的所有服务,请使用 docker compose up 命令。
-d 标志会以“分离”模式运行容器,也就是说,容器会在后台运行。
# This command starts your multi-service app
# and runs it in the background.
docker compose up -d验证运行中的容器
运行 docker compose up -d 后,您需要检查所有服务是否按预期运行。
docker compose ps 命令会列出服务、服务状态和端口。
# Check the status of your services
docker compose ps连接到应用程序
服务运行后,您就可以访问 Web 应用程序了。
- 打开 Web 浏览器。
- 访问
http://localhost:5000。
您应该会看到 Flask 应用程序返回的消息,确认它已连接到 PostgreSQL 数据库!
扩展服务
Docker Compose 的一项强大功能是扩展服务。如果您的 Web 应用程序需要处理更多流量,您可以轻松增加 Web 服务实例的数量。
请将 --scale 标志与 docker compose up 一起使用。
# Scale the 'web' service to 3 instances
docker compose up --scale web=3 -d停止并移除服务
应用程序使用完毕后,您可以停止并移除 docker-compose.yml 中定义的所有服务及其网络。
docker compose down 命令会为您完成清理工作。
# Stop and remove all services
docker compose down快速检查
请回想一下我们使用的 docker-compose.yml。您刚刚通过 docker compose up -d 启动了应用程序。
停止并移除所有正在运行的服务及其关联资源的主要命令是什么?
回顾与后续步骤
做得很好!您已经学习了如何使用 Docker Compose 部署和管理多服务应用程序。
- 我们在
docker-compose.yml中定义了服务。 - 我们使用
docker compose up -d启动服务。 - 我们通过
docker compose ps验证了服务状态。 - 我们扩展了服务,并使用
docker compose down进行清理。
这是一项在本地开发和测试复杂应用程序时必不可少的基础技能!
常见问题解答
「部署多服务应用」课时是免费的吗?
是的 — 「部署多服务应用」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Docker & DevOps Fundamentals 课程的其余内容,请升级到 CoddyKit PRO。 Docker & DevOps Fundamentals 课程共包含 4 节课。
「部署多服务应用」这节课中我会学到什么?
使用 Docker Compose 部署包含数据库和后端服务的全栈应用 你通过在浏览器中直接运行的动手代码来练习 Docker & DevOps Fundamentals,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Docker & DevOps Fundamentals 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Docker & DevOps Fundamentals 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「部署多服务应用」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Docker & DevOps Fundamentals 课中编写并运行代码吗?
能。每节 Docker & DevOps Fundamentals 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。