容器数据卷

当使用docker容器的时候,会产生一系列的数据文件,这些数据文件在关闭docker容器时会消失,但其中产生的部分内容希望能够把它给保存起来另作用途的,Docker将应用与运行环境打包成容器发布,我们希望在运行过程钟产生的部分数据是可以持久化的,而且容器之间也希望能够实现数据共享。

通俗地来说,docker容器数据卷可以看成生活中常用的u盘,它存在于一个或多个的容器中,由docker挂载到容器,但不属于联合文件系统,Docker不会在容器删除时删除其挂载的数据卷。

特点:

  • 数据卷可以在容器之间共享或重用数据
  • 数据卷中的更改可以直接生效
  • 数据卷中的更改不会包含在镜像的更新中
  • 数据卷的生命周期一直持续到没有容器使用它为止

容器数据卷添加

有两种添加方式

直接命令添加

docker run -it 镜像名 -v /宿主机的绝对路径目录:容器内目录 镜像名


容器内有dataVolumeContainer这个文件夹,该命令也有创建的功能

主机中也有myDataVolume这个文件夹

这两个文件夹的出现便说明容器数据卷挂载成功,可以进行数据的共享和对接。

容器与宿主机之间数据共享

主机建立一个house.txt文件

在容器内的dataVolumeContainer文件夹中查看

容器停止退出后,数据还是会进行同步

先退出容器

再主机中的myDataVolume文件夹下添加一个shy.txt文件

再来开启一下容器,查看是否能数据同步

发现即使容器退出,还是可以正常的进行数据共享的

docker run -it -v /宿主机绝对路径目录:/容器内目录:ro 镜像名
#容器内的目录只读
容器内该目录没有权限修改、没有权限添加文件
只是单向的由主机传给容器

DockerFile添加

在主机上添加一个/mydocker目录,在目录中编写Dockerfile文件

构建成镜像

docker build -f /mydocker/Dockerfile -t shy/centos .


进入容器内,发现有两个容器卷

对应的主机目录,因为没有指定,所以docker会默认存放到主机的一个位置中,可以使用下面命令查看

docker inspect 镜像名称/ID

也可以直接指定主机目录

docker run -it -v /host1:/dataVolumeContainer1 -v /host2:/dataVolumeContainer2 shy/centos /bin/bash

Docker挂载主机目录Docker访问出现cannot open directory : Permission denied

解决方法:在挂载目录后多加一个 --privileged=true参数即可

数据卷容器

命名的容器挂载数据卷,其他容器通过挂载这个(父容器)实现数据共享,挂载数据卷的容器,称之为数据卷容器

也就是容器之间传递共享

docker run -it --name 容器子类 --volumes-from 容器父类 镜像名称/ID

容器之间配置信息的传递,数据卷的生命周期一直持续到没有容器使用它为止(即使将父类容器删除,只要还有其他容器存在,就会进行数据共享。)

Docker_容器数据卷相关推荐

  1. docker 数据卷 mysql_Docker容器数据卷原理及使用方法解析

    什么是容器数据卷 如果数据都在容器中,一旦容器删除,数据就会丢失! eg : mysql容器删了,就是我们常说的删库跑路. 需求:数据可以持久化,即时删掉容器,我们的数据还在 容器直接可以有一个数据共 ...

  2. Docker镜像、容器数据卷和Dockerfile

    Docker镜像 概述 镜像是一种轻量级.可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码.运行时.库.环境变量和配置文件. UnionFS ...

  3. Docker系列 五.Docker容器数据卷

    五.Docker容器数据卷 环境&工具: 阿里云轻量级服务器.CentOS 7系统.FinalShell(其他连接客户端也可以) 是什么 docker的理念将运行的环境打包形成容器运行,运行可 ...

  4. docker之容器数据卷

    目录 1.使用volume添加数据卷 2.dockerFile添加数据卷 3.数据卷容器 4.dockerFile解析 4.1dockerfile解析过程 4.2 dockerfile保留关键字 介绍 ...

  5. Docker小白到实战之容器数据卷,整理的明明白白

    前言 上一篇把常用命令演示了一遍,其中也提到容器的隔离性,默认情况下,容器内应用产生的数据都是由容器本身独有,如果容器被删除,对应的数据文件就会跟着消失.从隔离性的角度来看,数据就应该和容器共存亡:但 ...

  6. Docker(三) 使用容器数据卷实现数据持久化与容器数据共享

    一,什么是容器数据卷 出现背景:我们在运行的容器中所产生的数据都生成在容器中,如果容器后期被我们删除,那么在容器中的文件数据都将彻底丢失.为了获得容器中的数据,只能通过 docker cp 命令将容器 ...

  7. docker容器数据卷基本操作

    在实际运用中,如果使用docker部署应用的时候,有这么一种情况,需要有个位置可以同步docker容器上的数据到服务器上,更通俗点讲,我们需要在服务器上开启一个位置,这个位置可以连接docker容器中 ...

  8. Docker容器数据卷讲解

    概述 为什么Docker需要容器数据卷技术:如果没有数据卷技术,比如一个由mysql镜像创建运行的容器,产生的数据就会保存在容器中,数据的生命周期与容器的生命周期一致,如果删除了该容器,相应的数据也会 ...

  9. doker学习4---docker容器数据卷

    doker学习4-docker容器数据卷 一.Docker容器数据卷是什么? 先来看看Docker的理念: 将运用与运行的环境打包形成容器运行 ,运行可以伴随着容器,但是我们对数据的要求希望是持久化的 ...

最新文章

  1. 12.前K个高频元素---使用优先队列和哈希表解决
  2. c# 的 textbox 默认情况下是有最大字符长度限制的
  3. mplayer-php,jQuery MPlayer网站音乐播放器插件
  4. std::priority_queue
  5. 【数据结构与算法】之深入解析“分数到小数”的求解思路与算法示例
  6. workaround for COM_ATTRFRG_GEN 066
  7. Bash Shell学习笔记二
  8. Eclipse 创建第一个 springboot 应用
  9. 120. Triangle
  10. 参会邀请 - ISWC2020 | 第十九届国际语义网会议
  11. 没有bug队——加贝——Python 练习实例 13,14
  12. POJ 2253 Frogger (求某两点之间所有路径中最大边的最小值)
  13. php 生成图片 打印,php 生成水印图片
  14. tomact配置好ssl证书后访问不到tomact_服务器上配置HTTPS的操作方法!
  15. #JS 窗口resize避免触发多次
  16. 统计学习方法——统计学习基础(一)
  17. 你会用JSON.stringify()?
  18. Coinbase、BlockFi相继开启上市准备工作,但SEC准备好了吗?
  19. 【Mysql】execute和executeUpdate
  20. 迅雷任务出错怎么办,如何解决迅雷任务出错

热门文章

  1. 【Python金融量化 7- 100 】、七、计算两只股票方差和相关性
  2. tornado 表单 post 提交
  3. 图马尔可夫网络:融合统计关系学习与图神经网络
  4. ACL 2020 | 消除文本分类问题中歧视现象的研究
  5. 当深度学习遇上量化交易——公开信息篇
  6. 抢票 | AI未来说学术论坛第八期 深度学习特别专场
  7. 微软最新论文解读 | 基于预训练自然语言生成的文本摘要方法
  8. webflux webclient DataBufferLimitException: Exceeded limit on max bytes to buffer
  9. C#——LINQ技术DEMO
  10. Spring Boot——HTTP访问重定向到HTTPS解决方案