Docker | 数据持久化与数据共享

数据持久化(安装MySQL)参考另一篇Docker安装mysql: https://www.cnblogs.com/all-smile/p/16778376.html
MySQL的数据持久化问题# 下载容器docker pull mysql:5.7-d 后台运行-p 端口映射-v 挂载数据卷-e 环境配置--name 容器名字# 运行容器docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7https://hub.docker.com/_/mysql

官网启动MySQL , 设置密码
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

Docker | 数据持久化与数据共享

文章插图
启动成功之后 , 使用客户端连接这里我使用的是SQLyog工具连接MySQL数据库
sqlyog连接服务器的3310端口 , 3310端口映射MySQL容器的3306端口 。
Docker | 数据持久化与数据共享

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

Docker | 数据持久化与数据共享

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

文章插图
多个centos容器数据共享
  1. 父容器docker01(数据卷容器)
# 父容器docker01(数据卷容器)docker run -it --name docker01 xiao-centos /bin/bash
  1. 创建docker02容器 , 继承关联docker01容器
docker run -it --name docker02 --volumes-from docker01 xiao-centos /bin/bash
  1. 创建docker03容器 , 继承关联docker01容器
docker run -it --name docker03 --volumes-from docker01 xiao-centos /bin/bash【Docker | 数据持久化与数据共享】以上三个容器之间数据同步共享 , 测试停止并删除docker01容器之后 , docker02,docker03的数据存在且依然可以同步数据
Docker | 数据持久化与数据共享

文章插图
多个MySQL实现数据共享# 创建mysql01容器docker run -d -p 3310:3306 -v /etc/mysql/conf.d -v /var/lib/mysql -e MYSQL_ROOT_PQSSWORD=123456 --name mysql01 mysql:5.7# 创建mysql02容器 , 同步mysql01容器docker run -d -p 3310:3306 -e MYSQL_ROOT_PQSSWORD=123456 --name mysql02 --volumes-from mysql02 mysql:5.7通过 --volumes-from 实现数据共享(继承)
结论:
  1. 容器之间配置信息的传递 , 数据卷容器的生命周期一直持续到没有容器为止 。
  2. 同步到宿主机本机的数据 , 本地持久化
我是 甜点cc
热爱前端 , 也喜欢专研各种跟本职工作关系不大的技术 , 技术、产品兴趣广泛且浓厚 , 等待着一个创业机会 。本号主要致力于分享个人经验总结 , 希望可以给一小部分人一些微小帮助 。
希望能和大家一起努力营造一个良好的学习氛围 , 为了个人和家庭、为了我国的互联网物联网技术、数字化转型、数字经济发展做一点点贡献 。数风流人物还看中国、看今朝、看你我 。

    经验总结扩展阅读