使用 Docker Compose 在单节点部署多容器

发布于:2025-03-30 ⋅ 阅读:(36) ⋅ 点赞:(0)

Docker Compose 是什么

Docker Compose 是一个用于运行多容器应用的工具, 通过一个docker-compose.yml文件, 配置应用的服务、网络和卷,然后使用简单的命令启动或停止所有服务

为什么需要 Docker Compose

当你有一个包含多个相互依赖的容器应用时,手动管理每个服务的启动、停止以及配置会比较复杂且容易出错
Docker Compose 提供了一种更简便的方法, 在单节点部署多个容器, 使得开发测试环境的一致性得到保证,同时简化了部署过程

示例: 使用Docker Compose 部署一个WordPress站点

下面演示如何使用 Docker Compose 在单个节点上部署一个包含 WordPress 和 MySQL 的简单网站。

1. 安装Docker Compose

官网上查找匹配版本安装, 我直接取最新版本安装

curl -L "https://github.com/docker/compose/releases/download/v2.34.0/docker-compose-linux-x86_64" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose version

2. 创建docker-compose.yml文件

在你的项目目录下创建一个名为 docker-compose.yml 的文件,并添加如下内容

version: '3.8'

services:
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: example
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
    volumes:
      - db_data:/var/lib/mysql
    restart: always

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    ports:
      - "8080:80"
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - wordpress_data:/var/www/html
    restart: always

volumes:
  db_data:
  wordpress_data:

这个yaml文件定义了两个服务:一个是 MySQL 数据库,另一个是 WordPress 应用程序, 同时我们定义了两个存储卷来持久化数据

3. 启动服务

在 docker-compose.yml 文件所在的目录中执行以下命令以启动服务

docker-compose up -d
[+] Running 3/3
 ✔ Network docker-compose_default        Created                                                                                                                                                                             0.1s
 ✔ Container docker-compose-db-1         Started                                                                                                                                                                             0.3s
 ✔ Container docker-compose-wordpress-1  Started

访问 http://localhost:8080 查看 WordPress 网站

4. 停止服务

使用docker-compose down命令, 即可一键停止服务

docker-compose down
[+] Running 3/3
 ✔ Container docker-compose-wordpress-1  Removed                                                                                                                                                                             1.2s
 ✔ Container docker-compose-db-1         Removed                                                                                                                                                                             1.7s
 ✔ Network docker-compose_default        Removed

Docker Compose 的优点

通过上述示例可以看出,Docker Compose 极大地简化了多容器应用的部署流程, 优点如下:

特性 直接使用Docker 使用Docker Compose
配置管理 每个容器的配置分散在多个命令中,容易出错且难以维护 配置集中在docker-compose.yml文件,便于维护和分享
一键操作 需要分别运行多条命令来启动、停止容器,效率低 使用一条命令(如 docker-compose updocker-compose down) 即可完成整个应用的管理
依赖管理 需要手动指定容器之间的依赖关系(如–link),容易出错 使用depends_on处理依赖关系
存储卷操作 需要手动创建和挂载存储卷 在 docker-compose.yml 中定义存储卷,自动管理持久化数据

参考

【1】 全网最详细的Docker-Compose详细教程


网站公告

今日签到

点亮在社区的每一天
去签到