实现docker的mysql重启数据不丢失

一、流程图

gantt
    title Docker Mysql数据不丢失重启流程
    section 创建并启动Mysql容器
    创建并启动Mysql容器     :done, a1, 2022-01-01, 1d
    section 保存数据
    保存数据到本地         :done, a2, after a1, 1d
    section 重启Mysql容器
    重启Mysql容器          :done, a3, after a2, 1d
    section 恢复数据
    恢复数据到Mysql容器     :done, a4, after a3, 1d

二、步骤

步骤 操作
1 创建并启动Mysql容器
2 保存Mysql数据到本地
3 重启Mysql容器
4 恢复数据到Mysql容器

三、代码示例

创建并启动Mysql容器

```shell
# 使用docker命令创建并启动Mysql容器
docker run -d --name mysql_container -e MYSQL_ROOT_PASSWORD=password mysql:latest

#### 保存数据到本地

```markdown
```shell
# 使用docker命令将Mysql数据保存到本地
docker exec mysql_container sh -c 'exec mysqldump --all-databases -uroot -p"password"' > /path/to/backup.sql

#### 重启Mysql容器

```markdown
```shell
# 使用docker命令重启Mysql容器
docker restart mysql_container

#### 恢复数据到Mysql容器

```markdown
```shell
# 使用docker命令将保存的数据恢复到Mysql容器
docker exec -i mysql_container sh -c 'exec mysql -uroot -p"password"' < /path/to/backup.sql

### 四、类图

```mermaid
classDiagram
    class MysqlContainer {
        - containerId: string
        + start(): void
        + stop(): void
        + restart(): void
        + saveData(): void
        + restoreData(): void
    }
    class Docker {
        - dockerCommand: string
        + run(containerName: string, image: string): void
        + exec(containerName: string, command: string): void
        + restart(containerName: string): void
    }
    MysqlContainer <|-- Docker

通过以上步骤和代码示例,你可以实现Docker中Mysql容器的数据不丢失重启。希望对你有帮助!