docker — volumes、MySQL数据库持久化

docker — volumes、MySQL数据库持久化

一、概述

  1. 容器数据丢失情况:

    • 每个容器每次启动都是从镜像定义开始的。
      虽然容器可以创建、更新和删除文件,但当容器被移除并且所有更改都与该容器隔离时,这些更改会丢失。
    • 示例:
      • 如数据库相关操作中:
        利用 MySQL 镜像创建了 数据库容器,并且在容器中新建了数据库,正常使用没有问题。
        -> 但是当删除该容器(或者docker-compose方式 down 完,又重新构建容器),原来容器中的数据库文件将会丢失。
  2. volumes

    • docker 提供了数据持久化的机制为 volumes,即为 挂载
    • volumes:提供了将容器的特定文件系统路径连接回主机的能力,如果容器中的目录已挂载,则该目录中的更改也会在主机上看到。如果我们在容器重启时挂载相同的目录,我们会看到相同的文件。

二、配置步骤

1、核心配置

以安装 MySQL 5.7 为例子:

# 1. volumes 参数
-v 【宿主机本地磁盘路径】:/var/lib/mysql

# 2. 完整命令:
docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=root -v 【宿主机本地磁盘路径】:/var/lib/mysql mysql:5.7

# 3. 示例
docker run -d \
--name mysql \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=root \
-v /home/xxx-user/mysql:/var/lib/mysql \
mysql:5.7

2、完整步骤

  • 查看docker仓库中的 mysql 版本:

    docker search mysql
    
  • 选择数据库镜像,以5.7为例:

    docker pull mysql:5.7
    
  • 查看已下载的镜像:

    docker images
    

    img

  • 启动Mysql容器

    # 启动容器,忽略MySQL大小写,设置数据库挂载到本地磁盘
    # 宿主机本地磁盘路径,示例:/home/xxx-user/mysql
    docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=root --lower_case_table_names=1 -v 【宿主机本地磁盘路径】:/var/lib/mysql -d mysql:5.7
    
    
    # 完整示例
    docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=root -v /home/xxx-user/mysql:/var/lib/mysql -d mysql:5.7
    
  • 登录Mysql数据库:

    # 进入 mysql 终端
    docker exec -it 【容器id】 bash
    
    #输入命令,并按提示输入密码root
    mysql -u root -p
    

三、volume常用命令

# 创建volume:
docker volume create【volume名称】

# 查看volume参数:
docker volume inspect【volume名称】

# 使用volume:
# -v 宿主机本地磁盘路径:容器内路径
docker run -dit --name 【容器名称】 -v【volume名称】:/volume 【镜像名称】
# 例如:
docker run -d -p 3306:3306 --name mysql_test -e MYSQL_ROOT_PASSWORD=root -v volume-mysql:/var/lib/mysql mysql:5.7

#查看docker数据卷
docker volume ls

# 删除volume:Remove one or more volumes
docker volume rm 【volume名称】

# 删除没使用的数据卷(谨慎使用):Remove all unused local volumes
docker volume prune
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值