Docker 数据持久化

1、简介

1.1 如何定义
  • 在 mysql 的 dockerfile 中,有 VOLUME /var/lib/mysql 这样一行,表示该数据持久化在 container 的哪个位置中
1.2 查看详情

docker volume ls :查看 volume 列表
docker volume inspect 86953ba27b374c560e7fd30b98c794de759b02de04edd8b3d324086c3e711879 :查看volume 的详情

[root@10-9-172-32 ~]# docker volume inspect 86953ba27b374c560e7fd30b98c794de759b02de04edd8b3d324086c3e711879
[
    {
        "CreatedAt": "2020-05-12T11:45:41+08:00",
        "Driver": "local",
        "Labels": null,
        // 这个路径,对应我 centos 的目录
        "Mountpoint": "/var/lib/docker/volumes/86953ba27b374c560e7fd30b98c794de759b02de04edd8b3d324086c3e711879/_data",
        "Name": "86953ba27b374c560e7fd30b98c794de759b02de04edd8b3d324086c3e711879",
        "Options": null,
        "Scope": "local"
    }
]

2、使用

2.1 用途

我们可以根据宿主机的 volume 中的东西,去恢复 container 中的数据,但是 volume 默认生成的 id 太长了,我们没有办法分辨谁是谁 ,我们可以执行已下操作

• docker run -d --name mysql002 -v mysql002_volume:/var/lib/mysql002 -e MYSQL_ROOT_PASSWORD=stg20150529 mysql

• -v mysql002_volume :是我们设置的 volume 的 id 标识
• -v /var/lib/mysql002 :是在容器内的存储路径
[root@10-9-172-32 _data]# docker volume ls
DRIVER              VOLUME NAME
local               2b79959d4b26b87705a6e908907c4d9fd99b7330a9f248a7468c3d70f386a2ea
local               86953ba27b374c560e7fd30b98c794de759b02de04edd8b3d324086c3e711879
local               541617b05c592cd7d19e6a13b174793f7ce5393ee62f3ecc76d238200885eb44
local               622946010edb526e0f8b0f397bb6e7a953df60f62524428c93d64dc310fb4869
local               mysql002_volume
// 我们可以发现 , mysql002_volume 变成了我们设置的值
2.2 实例,理论
  1. 容器 和 宿主机的数据是实时同步的
  2. 数据恢复
  • 我们可以通过 volume 的路径,指定给别的 container 使用
  • 比如,mysql 01 使用 mysql01_volume ,然后我们删除点 mysql01容器,但是 mysql01_volume 还在
  • docker run -d --name mysql02 -v mysql01_volume:/var/lib/mysql mysql
  • 执行上面的命令,可以发现, mysql02 取到了之前 Mysql01 的数据
  • 通过这样就可以实现一个数据的恢复,也就是可以实现数据的持久化操作
  1. 宿主机与容器路径对应
  • docke run -d --name tomcat01 -v /tmp/mall:/usr/local/tomcat/webapp tomcat
  • 这样就实现了 宿主机的路径挂载到 tomcat 的webapp 路径下
  • 我们在 /tmp/mall 中做的操作会同步到容器内的 /usr/local/tomcat/webapp 路径下
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值