当前位置: 首页 > news >正文

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

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详细教程

http://www.dtcms.com/a/98420.html

相关文章:

  • C++ 变量与初始化详解(十五)
  • 【商城实战(100)】商城败局启示录:探寻成功的反方向
  • 【ChatBox】deepseek本地部署
  • 解决 Gradle 构建错误:Could not get unknown property ‘withoutJclOverSlf4J’
  • 【Linux笔记】进程间通信——匿名管道||进程池
  • Linux 系统部署Jump Server服务
  • 使用msmtp和mutt在CentOS上发送指定目录下的所有文件作为邮件附件
  • 聚焦高德开放平台的地图应用场景:创新实践与技术解析
  • 若依赖前端处理后端返回的错误状态码
  • 【新手初学】SQL注入getshell
  • 1、C51单片机(STC8G2K64S4)串口实验
  • Java开发者指南:深入解析PBFT拜占庭容错算法
  • pycharm终端操作远程服务器
  • 【磁盘扩容】linux磁盘扩容
  • Koordinator-Metric查询
  • Python3基础库入门(个人学习用)
  • [ C语言 ] | 从0到1?
  • Redis设计与实现-哨兵
  • 分销商城小程序开发六大核心功能详解
  • 用react实现router路由
  • C++ 中名字的作用域、概念、嵌套与实践(十八)
  • Java基础-22-基本语法-实体类
  • 【MySQL篇】事务管理,事务的特性及深入理解隔离级别
  • Unity功能模块一对话系统(5)-完善对话流程及功能
  • Python针对大规模数据使用”sys模块加速I/O操作“:
  • 21天Python计划:函数简单介绍
  • PCBB印刷电路板缺陷检测YOLO数据集分享
  • LeetCode hot 100—两两交换链表中的节点
  • Redis场景问题1:缓存穿透
  • 用python压缩图片大小