[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
- 基礎命令