没有合适的资源?快使用搜索试试~ 我知道了~
解决docker重启redis,mysql数据丢失的问题
25 下载量 53 浏览量
2021-01-08
23:07:19
上传
评论
收藏 178KB PDF 举报
温馨提示
试读
1页
官方文档: 所以 mysql应如下启动: docker run -p 3306:3306 -d -e MYSQL_ROOT_PASSWORD=密码 -v /windows盘符/指定的文件夹路径:/var/lib/mysql mysql:5.7 redis: docker run -p 6379:6379 -d -v /windows盘符/指定的文件夹路径:/data redis:5.0 redis-server –appendonly yes 多看官方文档,里面有详细的说明 补充知识:docker 挂载进容器的文件修改后没有改变需要重启 今天发现一个很奇怪的现象,就是我
资源推荐
资源详情
资源评论
解决解决docker重启重启redis,mysql数据丢失的问题数据丢失的问题
官方文档:官方文档:
所以 mysql应如下启动:
docker run -p 3306:3306 -d -e MYSQL_ROOT_PASSWORD=密码 -v /windows盘符/指定的文件夹路径:/var/lib/mysql mysql:5.7
redis::
docker run -p 6379:6379 -d -v /windows盘符/指定的文件夹路径:/data redis:5.0 redis-server –appendonly yes
多看官方文档,里面有详细的说明
补充知识:补充知识:docker 挂载进容器的文件修改后没有改变需要重启挂载进容器的文件修改后没有改变需要重启
今天发现一个很奇怪的现象,就是我在宿主机上的文件挂载进docker后,主机上删除了文件,并且重新上传重命名为相同名字的文件,容器中的没有同步.
先来说下Linux,Linux存储是分为iNode和block的,iNode存储的是文件的属行信息,例如大小,在磁盘的什么位置,block是4k大小的一个块,存储的是文件的实际信息,不足4k大小的文件也会占用掉4k的空
间.
了解了上面,再来说docker,挂载进docker的文件,实际上是docker记住了一个iNode,他可以通过这个iNode找到block,也就是实际的文件信息.如果是用 > 追加重定向写入文件,是可以同步到docker的,但
是如果是rm 重命名的,文件的iNode就改变了,但是docker中的iNode还是指向了之前的磁盘位置,所以文件没有改变.
rm 原理:rm只是删除了iNode,没有了iNode通过正常方式,找不到磁盘上的block,看起来就是删除了,但是文件信息还在,文件信息会在下次写入到这里的时候覆盖掉,所以数据被删除还有恢复的方法,但
是,如果删除的时候文件是打开的,文件也不会被删除
同样的还有vim ,vim 文件的时候,是基于现有的文件copy了一份,同级目录下会有一个 .开头swp结尾的文件,当你保存退出的时候,vim 会删掉源文件,将这个文件重命名为源文件的名字,iNode自然也就
改变了.
以上这篇解决docker重启redis,mysql数据丢失的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。
您可能感兴趣的文章您可能感兴趣的文章:基于springboot实现redis分布式锁的方法Redis大key多key拆分实现方法解析docker下的 redis 之持久化存储详解详解Redis中的List类型Redis使用bloom-filter过滤器实现推荐
去重Redis分布式锁python-redis-lock使用方法Docker 启动Redis 并设置密码的操作解决RedisTemplate调用increment报错问题Redis配合SSDB实现持久化存储代码示例
资源评论
weixin_38530846
- 粉丝: 5
- 资源: 930
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功