首页 > 其他分享 >Docker | 数据持久化与数据共享

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

时间:2022-10-12 09:23:49浏览次数:64  
标签:容器 持久 name -- MySQL 数据共享 mysql Docker 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

热爱前端,也喜欢专研各种跟本职工作关系不大的技术,技术、产品兴趣广泛且浓厚,等待着一个创业机会。本号主要致力于分享个人经验总结,希望可以给一小部分人一些微小帮助。

希望能和大家一起努力营造一个良好的学习氛围,为了个人和家庭、为了我国的互联网物联网技术、数字化转型、数字经济发展做一点点贡献。数风流人物还看中国、看今朝、看你我。

标签:容器,持久,name,--,MySQL,数据共享,mysql,Docker,docker
From: https://www.cnblogs.com/all-smile/p/16783319.html

相关文章

  • 两个或多个docker容器之间通过名字相互访问
    前言需要部署的项目中有数据库和Tomcat,Tomcat需要连接到数据库容器的3306端口上,由于容器的IP地址会变化,又不能写死IP地址,所以就有了下文。docker网卡介绍docker......
  • dockerfile
    dockerbuild命令后"."这里的.号代表什么意思呢?Docker在运行时分为Docker引擎(服务端守护进程)以及客户端工具,我们日常使用各种docker命令,其实就是在使用客户端工......
  • IDEA 使用 Docker 插件,实现一键自动化部署
    一、docker开启远程连接访问​首先我们要开启docker的远程连接访问。保证不是docker所在的服务器,也能够远程访问docker。Linux版的docker:修改docker.service文件,添加监听......
  • docker和Namespace技术介绍
    一、docker介绍Docker是基于linux内核实现,Docker最早采用LXC技术(LinuXContainer的简写,LXC是Linux原生支持的容器技术,可以提供轻量级的虚拟化,可以说d......
  • install docker
    title:installdockerHowtoinstalldockerbyyum.yuminstallyum-utils-yyum-config-manager--add-repohttps://download.docker.com/linux/centos/docker......
  • 2022-08-23-docker
    title:installdockerHowtoinstalldockerbyyum.yuminstallyum-utils-yyum-config-manager--add-repohttps://download.docker.com/linux/centos/docker......
  • Docker学习(四)
    容器卷记得加入参数:--privileged=trueDocker挂载主机目录访问如果出现cannotopendirectory.:Permissiondenied解决办法:在挂载目录后多加一个--privileged=true参数即......
  • Redis持久化机制
    一、全量同步与增量同步Redis在不明原因宕机的情况下,数据是不会宕机的。因为数据已持久化。持久化策略分为全量同步与增量同步.1、全量同步(RDB):每天定时(避开高峰期)或者采......
  • docker简单运行centos7
    1.下载centos镜像dockerpullcentos:7.9.20092.后台启动容器dockerrun-d--name=centos7--privilegedcentos:7.9.2009/usr/sbin/init3.进入centos7容器中d......
  • containerd和docker命令对比
    命令dockercrictl(推荐)ctr查看容器列表dockerpscrictlpsctr-nk8s.iocls查看容器详情dockerinspectcrictlinspectctr-nk8s.iocinfo查看......