一.Docker持久化数据的方案

基于本地文件系统的Volume:可以在执行docker create或docker run时,通过-v参数将主机的目录作为容器的数据卷。这部分功能便是基于本地文件系统的volume管理。
    基于plugin的Volume:支持第三方的存储方案,比如NAS,aws

1.Volume的类型

受管理的data Volume,由docker后台自动创建
    绑定挂载的Volume,具体挂载位置可以由用户指定

二.数据持久化:Data Volume
1.操作流程

注意:mysql的Dockerfile中由VOLUME ["/var/lib/mysql"]指定了持久化的路径,此路径是要被持久化的路径,默认volume的名称为local
    执行 sudo docker run -d -v mysql:/var/lib/mysql --name mysql1 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql启用一个mysql的image容器,其中-v后跟的mysql表示volume别名,冒号后面的路径为volume本地存储的地址
    查看 sudo docker volume ls查看docker的volume,会发现自动生成了一个volume
    通过 sudo docker volume inspect volume的NAME值查看对应volume的详情信息
    如果希望删除volume,则可以使用sudo docker volume rm volumeNAME
在这里向大家推荐一个资料分享群:894951460,里面有大数据离线处理、数据实时处理、Hadoop 、Spark、推荐系统算法等内容的资料分享,如果有兴趣的朋友可以加入领取。
2.恢复volume数据

上述操作后会将数据存储到/var/lib/mysql中,我们可以对container中的mysql数据进行增删改查操作
    通过 sudo docker rm mysql1移除container
    此时查看/var/lib/mysql路径仍然存储volume
    我们可以使用 sudo docker run -d -v mysql:/var/lib/mysql --name mysql1 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql再次开启一个container,此时的volume会延用之前的数据实现数据的恢复

三.数据持久化:Bind Mounting
1.与Data Volume的区别

Data Volume需要在Dockerfile中定义要创建的volume
    Bind Mounting是在运行时指定本地目录与容器中目录的一一对应关系即可docker run -v /home/aaa:/root/aaa

Docker持久化存储与数据共享的更多相关文章

  1. 20.docker 持久化存储与数据共享

    1.image layer 和 container layer 的关系 image layer 是可读的 container layer 是在image layer 之上创建的 一个可读可写层 con ...

  2. Centos7——docker持久化存储和卷间状态共享(笔记)

    docker持久化存储和卷间状态共享(笔记)  本章介绍 存储卷的介绍 存储卷的两种类型 宿主机好额容器之间如何共享数据 容器之间如何共享数据 存储卷的声明周期 存储卷之间的数据管理和控制模式 就像在 ...

  3. s5 Docker的持久化存储和数据共享

    数据库容器的数据如何才能不会丢失?Docker的持久化存储技术.Docker的数据共享技术能极大提高开发人员的开发效率,边写代码,边看运行结果. 数据持久化之Data Volume Docker持久化 ...

  4. 18、docker的持久化存储和数据共享

    18.1 Data Volume Docker持久化数据方案 基于本地文件系统的Volume   可以在执行docker create或者docker run的时候,通过-v参数将主机的目录作为容器的 ...

  5. docker 持久化存储

    1.data Volume  mysql5.7:dockerfile FROM debian:stretch-slim # add our user and group first to make s ...

  6. docker容器的持久化存储:Volume

    独立于docker容器的持久化存储: 法(1):自动将服务器文件夹挂载到容器内部文件夹/usr/share/nginx/html,这样只修改服务器文件夹下的内容即可对应修改容器内部文件夹的内容 将服务 ...

  7. 五十四.自定义镜像及仓库、持久化存储 、 Docker网络架构

    1. 制作自定义镜像(base基础镜像,搭建共性环境) 基于centos镜像使用commit创建新的镜像文件 基于centos镜像使用Dockerfile文件创建一个新的镜像文件   1.1 使用镜像 ...

  8. docker容器存储

    写在前面 我们在上篇学习了容器网络,对容器网络驱动bridge工作原理做了较为详细的介绍,今天小作文一起看看容器中另一个关键域-存储. 容器的存储可以分为两大类: 一种是与镜像相关的即我们在<d ...

  9. Kubernetes持久化存储2——探究实验

    目录贴:Kubernetes学习系列 一.简介 本文在“创建PV,创建PVC挂载PV,创建POD挂载PVC”这个环境的基础上,进行各种删除实验,并记录.分析各资源的状态. 二.实验脚本 实验创建了一个 ...

随机推荐

  1. Python 3 与 Javascript escape 传输确保数据正确方法和中文乱码解决方案

    注意:现在已不推荐 escape 函数,推荐使用  encodeURIComponent 函数,其中方法更简单,只需进行URL解码即可. 当然了,如下文章解决方案一样可行. 前几天用Python的Bo ...

  2. 如何使用正则做文本数据的清洗(附免费AI视频福利)

    手工打造文本数据清洗工具 作者 白宁超 2019年4月30日09:43:59 前言:数据清理指删除.更正错误.不完整.格式有误或多余的数据.数据清理不仅仅更正错误,同样加强来自各个单独信息系统不同数据 ...

  3. 【洛谷】【treap/堆】P2073 送花

    [题目描述:] 这些花都很漂亮,每朵花有一个美丽值W,价格为C. 小明一开始有一个空的花束,他不断地向里面添加花.他有以下几种操作: 操作 含义 1 W C 添加一朵美丽值为W,价格为C的花. 3 小 ...

  4. Django提示Unknown database处理方法

    cmd.exe运行别人的程序 C:\Python27\Python.exe E:\Django\Guest\Guest\manage.py runserver 提示 django.db.utils.I ...

  5. c++问题整理

    1.C++ 多态,多态的实现,c++虚函数,虚函数和纯虚函数有什么区别,虚函数的实现原理,虚继承,析构函数能否为虚,为什么析构要虚函数,析构函数声明为虚函数的作用,构造函数为啥不能定义为虚函数,析构函 ...

  6. web常用的正则表达式

    1.    平时做网站经常要用正则表达式,下面是一些讲解和例子,仅供大家参考和修改使用: 2.    "^\d+$" //非负整数(正整数 + 0) 3.    "^[0 ...

  7. python js 处理弹窗图片

    内置函数 : driver.execute_script() 2.自定义弹窗 由于alert弹窗不美观,现在大多数网站都会使用自定义弹窗,使用Selenium自带的方法就驾驭不了了,此时就要搬出JS大 ...

  8. SEGGER RTT STOP/SLEEP 模式下使用

    1.问题详述, M3/M4内核在sleep 或者 STOP模式 下,内核是不工作的,因此需要 以下 几步操作 第一步: 开启 低功耗模式下,debug 的连接 DBGMCU_Config(DBGMCU ...

  9. RS485接口为什么要接地

    RS485接口为什么要接地 RS485接口有三根线,分别是A.B和GND线.因为RS485是差分传输的,所以很多工程师以为GND地线不重要,经常不接,甚至有些工程为了节约成本用两芯线或者用视频线来传输 ...

  10. 【转】C++三大特性

    又重新看了一个多月的书,也算是基本上了解了一些很基础的东西,学习C++就得掌握它所具备的三大特性. 封装性是基础,继承性是关键,多态性是补充,并且多态性存在于继承的环境中. 封装性 C++语言中支持数 ...