[TOC]
## 一、【示例】服务关闭前备份数据库
```
mysql:
container_name: docker-wp-mysql-8
image: 'mysql:8.0'
cpus: '2'
cpu_shares: 2048
working_dir: /docker-wp/mysql8
environment:
MYSQL_ROOT_PASSWORD: xuguo
MYSQL_DATABASE: wp
MYSQL_USER: xuguo
MYSQL_PASSWORD: xuguo
MYSQL_SOCKET: /var/run/mysqld/mysqld.sock # 当需要指定时才定义;
volumes:
- db_data:/var/lib/mysql
- db_mysqld:/var/run/mysqld
- /Users/jerryxu/wwwroot/cache/test/docker-wp/mysql8/shellBackUp:/shellBackUp
- /Users/jerryxu/wwwroot/cache/test/docker-wp/mysql8/backup:/backup
command: |
/bin/bash -c "trap 'mysqladmin -h mysql -uroot -pMYSQL_ROOT_PASSWORD shutdown; /shellBackUp/backup.sh' EXIT; /usr/sbin/mysqld"
ports:
- '61002:3306'
networks:
- my-network
```
这段代码启动了一个名为`docker-wp-mysql-8`的 MySQL 容器,使用了 MySQL 8.0 的 Docker 镜像。在容器启动时,使用`trap`命令捕获容器退出信号,并在容器退出时执行备份脚本和优雅地关闭 MySQL 服务器。容器将 MySQL 数据库数据目录、MySQL 服务器套接字目录、备份脚本路径和备份文件路径挂载到容器中。MySQL 服务器的 3306端口映射到主机的 61002 端口。
### 备份脚本
``````
# Define backup file name
BACKUP_FILE\="/backup/backup-$(date +%Y-%m-%d_%H-%M-%S).sql"
BACKUP_ARCHIVE\="/backup/backup-$(date +%Y-%m-%d_%H-%M-%S).tar.gz"
# Create backup directory
mkdir -p /backup
# Backup MySQL database
mysqldump --all-databases -uroot -p"${MYSQL_ROOT\_PASSWORD}" > "${BACKUP_FILE}" --socket="${MYSQL\_SOCKET}"
# Archive backup file
tar -czvf "${BACKUP_ARCHIVE}" "${BACKUP_FILE}"
\# Remove backup file
rm "${BACKUP_FILE}"
``````
## 二、绑定数据块到本地目录
``````
volumes:
db\_data:
driver: local
driver\_opts:
type: none
o: bind
device: /Users/jerryxu/wwwroot/cache/test/docker-wp/mysql8/db-data
``````
- 系统设计
- 需求分析
- 概要设计
- 详细设计
- 逻辑模型设计
- 物理模型设计
- 产品设计
- 数据驱动产品设计
- 首页
- 逻辑理解
- 微服务架构的关系数据库优化
- Java基础架构
- 编程范式
- 面向对象编程【模拟现实】
- 泛型编程【参数化】
- 函数式编程
- 响应式编程【异步流】
- 并发编程【多线程】
- 面向切面编程【代码复用解耦】
- 声明式编程【注解和配置】
- 函数响应式编程
- 语法基础
- 包、接口、类、对象和切面案例代码
- Springboot按以下步骤面向切面设计程序
- 关键词
- 内部类、匿名类
- 数组、字符串、I/O
- 常用API
- 并发包
- XML
- Maven 包管理
- Pom.xml
- 技术框架
- SpringBoot
- 项目文件目录
- Vue
- Vue项目文件目录
- 远程组件
- 敏捷开发前端应用
- Pinia Store
- Vite
- Composition API
- uniapp
- 本地方法JNI
- 脚本机制
- 编译器API
- 注释
- 源码级注释
- Javadoc
- 安全
- Swing和图形化编程
- 国际化
- 精实或精益
- 精实软件数据库设计
- 精实的原理与方法
- 项目
- 零售软件
- 扩展
- 1001_docker 示例
- 1002_Docker 常用命令
- 1003_微服务
- 1004_微服务数据模型范式
- 1005_数据模型
- 1006_springCloud
- AI 流程图生成
- Wordpress_6
- Woocommerce_7
- WooCommerce常用的API和帮助函数
- WooCommerce的钩子和过滤器
- REST API
- 数据库API
- 模板系统
- 数据模型
- 1.Woo主题开发流程
- Filter
- Hook
- 可视编辑区域的函数工具
- 渲染字段函数
- 类库和框架
- TDD 通过测试来驱动开发
- 编程范式对WordPress开发
- WordPress和WooCommerce的核心代码类库组成
- 数据库修改
- 1.WP主题开发流程与时间规划
- moho
- Note 1
- 基础命令