学习优先级:★★★★★

易用性:★★★☆☆

将单体应用拆分为多个小型服务(微服务)具有诸多优势。每个服务可以独立维护、更新和扩展,这有助于提高资源利用率并防止一个错误影响整个系统。Docker Compose 通过在单个文件中定义多个容器的配置,简化了这些微服务的协调。

以下是一个示例,展示了如何使用 docker-compose.yml 启动一个简单的 Web 应用程序和一个单独的数据库服务。

示例代码

version: '3'

services:
  web:
    image: nginx:alpine
    ports:
      - "8080:80"
    networks:
      - webnet

  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: example
    networks:
      - webnet

networks:
  webnet:

执行结果

运行此配置后,Web 应用程序(Nginx)在 http://localhost:8080 上运行,并可以通过浏览器访问。同时,MySQL 数据库服务在后台运行。

在这个示例中,应用被拆分为两个服务:web(Nginx Web 服务器)和 db(MySQL 数据库)。它们通过 Docker Compose 自动创建的网络进行通信。每个服务都有自己的职责:Web 应用程序显示内容,而数据库存储所有数据。由于它们独立运行,可以分别进行扩展、更新或重启,而无需停止整个应用。

补充说明

微服务架构允许团队更快地开发和部署,因为每个服务可以独立开发和测试。Docker Compose 是一个出色的工具,用于在本地或开发环境中轻松地编排这些服务。