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

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
RDS AI 助手,专业版
简介: Docker | 数据持久化与数据共享

数据持久化(安装MySQL)


参考另一篇Docker Compose创建mysql容器


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


hub.docker.com/_/mysql


官网启动MySQL,设置密码

docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

image.png


启动成功之后,使用客户端连接


这里我使用的是SQLyog工具连接MySQL数据库

sqlyog连接服务器的3310端口,3310端口映射MySQL容器的3306端口。

image.png

可以在Linux主机/home目录下查看到mysql文件夹


删除MySQL容器,可以看到Linux主机上/home/mysql/数据依然存在


  • docker rm -f 容器ID
  • docker ps -a
  • cd /home/mysql
  • ls

image.png

运行新的MySQL容器通过挂载数据卷,就可以把Linux主机上备份的数据重新导入到容器里,这就是数据持久化。


数据共享


容器之间同步数据。比方说,两个MySQL数据库同步数据


--volumes-from 
实现容器间的数据共享

image.png


多个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的数据存在且依然可以同步数据

image.png


多个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. 同步到宿主机本机的数据,本地持久化


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
关系型数据库 MySQL Linux
在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾
以上就是在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾的步骤。这个过程就像是一场接力赛,数据从MySQL数据库中接力棒一样传递到备份文件,再从备份文件传递到其他服务器,最后再传递回MySQL数据库。这样,即使在灾难发生时,我们也可以快速恢复数据,保证业务的正常运行。
525 28
|
SQL 关系型数据库 数据库
国产数据实战之docker部署MyWebSQL数据库管理工具
【10月更文挑战第23天】国产数据实战之docker部署MyWebSQL数据库管理工具
1050 4
国产数据实战之docker部署MyWebSQL数据库管理工具
|
存储 数据管理 应用服务中间件
Docker的数据管理实战篇
关于Docker数据管理实战的教程,涵盖了Docker数据卷的使用、特点、场景以及数据卷容器的概念和应用。
384 14
Docker的数据管理实战篇
|
关系型数据库 数据管理 应用服务中间件
【赵渝强老师】Docker的数据持久化
在生产环境中使用Docker时,为了实现数据的持久化和共享,可以通过数据卷(Data Volumes)和数据卷容器(Data Volume Containers)两种方式来管理数据。数据卷是一个独立于容器的挂载目录,可以跨多个容器共享和重用。数据卷容器则是一种特殊容器,用于维护数据卷,便于数据迁移和共享。本文通过示例详细介绍了这两种方法的使用步骤。
307 1
|
存储 Kubernetes Docker
|
安全 Linux 调度
docker的底层原理三: 内核共享
本文阐述了Docker容器通过共享宿主机的内核来实现轻量级运行,同时利用命名空间、控制组、文件系统和网络隔离等技术确保容器的安全性和资源控制。
706 6
|
存储 安全 Docker
docker中数据持久化(Volumes)
【10月更文挑战第3天】
353 4
|
存储 安全 Docker
docker中数据卷的共享与复制
【10月更文挑战第8天】
567 1
|
存储 安全 数据管理
Docker中实现数据持久化
【10月更文挑战第8天】
602 1
|
存储 Kubernetes 数据库
docker数据持久化问题
【10月更文挑战第4天】
312 2

热门文章

最新文章

下一篇
开通oss服务