Docker | 数据持久化与数据共享
数据持久化(安装 MySQL)
MySQL 的数据持久化问题
下载容器
docker pull mysql:5.7
-d 后台运行
-p 端口映射
-v 挂载数据卷
-e 环境配置
--name 容器名字
运行容器
https://hub.docker.com/_/mysql
官网启动 MySQL,设置密码
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

启动成功之后,使用客户端连接
这里我使用的是 SQLyog 工具连接 MySQL 数据库
sqlyog 连接服务器的 3310 端口,3310 端口映射 MySQL 容器的 3306 端口。

可以在 Linux 主机/home
目录下查看到mysql
文件夹
删除 MySQL 容器,可以看到 Linux 主机上/home/mysql/数据依然存在
docker rm -f 容器 ID
docker ps -a
cd /home/mysql
ls

运行新的 MySQL 容器通过挂载数据卷,就可以把 Linux 主机上备份的数据重新导入到容器里,这就是数据持久化。
数据共享
容器之间同步数据。比方说,两个MySQL
数据库同步数据
--volumes-from
:实现容器间的数据共享

多个 centos 容器数据共享
父容器 docker01(数据卷容器)
创建 docker02 容器,继承关联 docker01 容器
创建 docker03 容器,继承关联 docker01 容器
以上三个容器之间数据同步共享,测试停止并删除 docker01 容器之后,docker02,docker03 的数据存在且依然可以同步数据

多个 MySQL 实现数据共享
创建 mysql01 容器
创建 mysql02 容器,同步 mysql01 容器
通过 --volumes-from 实现数据共享(继承)
结论:
容器之间配置信息的传递,数据卷容器的生命周期一直持续到没有容器为止。
同步到宿主机本机的数据,本地持久化
我是 甜点cc
热爱前端,也喜欢专研各种跟本职工作关系不大的技术,技术、产品兴趣广泛且浓厚,等待着一个创业机会。本号主要致力于分享个人经验总结,希望可以给一小部分人一些微小帮助。
希望能和大家一起努力营造一个良好的学习氛围,为了个人和家庭、为了我国的互联网物联网技术、数字化转型、数字经济发展做一点点贡献。数风流人物还看中国、看今朝、看你我。
版权声明: 本文为 InfoQ 作者【甜点cc】的原创文章。
原文链接:【http://xie.infoq.cn/article/43f4bc99f6436118918832db5】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论