Docker容器的数据持久化

Docker容器的数据持久化

Posted by LY on April 5, 2020

欢迎大家关注我的以下主页,尤其是今日头条!!!谢谢🙏🙏🙏

csdn:雷园的csdn博客

个人博客:雷园的个人博客

简书:雷园的简书

今日头条:来自底层程序员的仰望

Docker容器的数据持久化

开头说几句

  1. 在上一章节中,我们介绍了容器的link操作。让我们更加方便的引用其他服务。
  2. 在这一章节中,我们将会介绍容器数据持久化
  3. 希望在这章节中,大家可以快速掌握持久化的操作方式,避免数据丢失

正式开始

为什么要对Docker容器的数据进行持久化?
  1. 避免容器误删导致数据丢失。
  2. 避免Docker应用意外中断或无法正常运行,导致数据丢失。
  3. 方便数据管理、备份、迁移等操作。
  4. 数据持久化后,即使容器删除,或者迁移数据至其他宿主机,我们只需要将数据挂载至容器内部,即可恢复数据。
如何正确的持久化Docker容器数据?
  1. 这里我们分别以两个容器为例说明。

  2. 大家最常用的数据库——不出意外的话,应该是Mysql无疑了。

  3. 那无论是测试、演示、生产,我们大多数时候都不希望数据丢失。

  4. 那当我们在运用容器的时候,同样有此夙愿,接下来我们就说一下Mysql容器的数据持久化。

  5. 一般来说我们都是引用官方的mysql images,所以我们先去Docker hub,看一下官方文档,看看他的工作目录是哪里。

    WeChat3e6cea5fab1b4bdbfb6206e04405275b

  6. 由上图结果可见,与我们本地安装并无不同,数据仍然是存储至目录/var/lib/mysql

  7. 那接下来,我们只需要启动的时候,将/var/lib/mysql挂载至宿主机任意目录即可。

  8. 操作命令docker run -d -p 3306:3306 -v /data/mysql/:/var/lib/mysql/ --name mysql mysql:latest

  9. 详细说明一下上述命令:后台启动容器,映射端口3306至宿主机3306,挂载/var/lib/mysql/至宿主机/data/mysql/,容器名为mysql,镜像为mysql:latest

  10. 这样以来,mysql容器中的数据会持久化至宿主机,即使删除容器或切换宿主机,只要将数据挂载,即可快速恢复数据。

  11. 除了mysql,还有很多镜像的应用。如:文件服务器、FTP、SFTP、Redis、Mongo这些等等。

最后说几句

  1. 今天我们说明了数据持久化的用法,经过本人长久以来的使用,确实好用。
  2. 数据的丢失简直不要太痛苦,所以大家一定要珍惜自己的数据。
  3. 容器的基本操作我们说的差不多了,下一章节中,我们开始介绍镜像的制作、容器的编排、集群的搭建等等。
  4. 希望大家多多支持,谢谢大家。