乐趣区

关于前端: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.7

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 容器数据共享

  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

以上三个容器之间数据同步共享,测试进行并删除 docker01 容器之后,docker02,docker03 的数据存在且仍然能够同步数据

多个 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

酷爱前端,也喜爱专研各种跟本职工作关系不大的技术,技术、产品趣味宽泛且浓重,期待着一个守业机会。本号次要致力于分享集体经验总结,心愿能够给一小部分人一些渺小帮忙。

心愿能和大家一起致力营造一个良好的学习气氛,为了集体和家庭、为了我国的互联网物联网技术、数字化转型、数字经济倒退做一点点奉献。数风流人物还看中国、看今朝、看你我。

退出移动版