0Pricing
Docker & DevOps Fundamentals · 课时

部署多服务应用

使用 Docker Compose 部署包含数据库和后端服务的全栈应用

部署多服务应用 是 CoddyKit 上的免费 Docker & DevOps Fundamentals 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Docker & DevOps Fundamentals 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Docker & DevOps Fundamentals 课程共包含 4 节课。

部署多服务应用程序

欢迎!在本课中,您将学习如何使用 Docker Compose 让一个全栈应用程序上线。

您将了解如何定义 Web 应用和数据库等多个服务,然后统一部署和管理它们。

部署多服务应用 — 插图 1

我们的示例: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 反馈 — 无需本地设置。

此课程中的所有课时

  1. 什么是 Docker Compose
  2. 编写 Compose 文件
  3. 部署多服务应用
  4. 环境变量与 .env 文件
← 返回 Docker & DevOps Fundamentals