一、挂载类型

1、volumes

Docker管理宿主机文件系统的一部分(/var/lib/docker/volumes)。保存数据的最佳方式。

使用场景:将容器中的数据持久化到宿主机,比如容器是mysql,容器重启后就没数据了,此时需要保存到宿主机上。

2、bind mounts

将宿主机上的任意位置的文件或者目录挂载到容器中。

使用场景:容器使用一些宿主机上的文件或目录。比如zabbix agent 他需要采集宿主机上的proc目录对其进行监控。

3、tmpfs

挂载存储在主机系统的内存中,而不会写入主机的文件系统。如果不希望将数据持久化到任何位置,可以使用tmpfs,同时避免写入容器可写层,以提高性能。

使用较少。

二、volumes

1、创建和查看volume

2、使用vloume

注意:也可以使用-v的方式,是老的方式。

docker run -d --name lnmp_web03 -p8889:80 -v nginx_root:/usr/share/nginx/html nginx

3、验证

修改主页

查看主页

直接修改/var/lib/docker/volumes/nginx_root/_data数据,就是修改的容器的数据,当容器挂掉后,我们重新再启动一个新的容器即可。这就是volume的好处啦。

三、bind mounts

bind方式和volume不同之处是:bind方式是直接将宿主机上的某个目录作为源。此目录必须存在,不然会报错。

1、bind方式创建容器

 注意:

1、如果源文件/目录没有存在,不会自动创建,会抛出错误。

2、如果挂载目标在容器中非空目录,则改目录现有内容将被隐藏。

3、使用另外一种方式使用bind

docker run -d --name lnmp_ggg -p8889:80 -v /mnt:/usr/share/nginx/html nginx

2、查看容器

容器里面本来是有内容的,挂载源文件后,会被覆盖,现有内容隐藏起来。

3、编写主页

4、验证

5、查看源目录

四、总结

1、volume特点

  • 多个运行容器之间共享数据。
  • 当容器停止或被移除时,该卷依然存在。
  • 多个容器可以同时挂载相同的卷。
  • 当明确删除卷时,卷才会被删除。
  • 将容器的数据存储在远程主机或其他存储上。
  • 将数据从一台dokcer迁移到另外一台时,先停止容器,然后备份卷的目录(/var/lib/docker/volumes)
  • volume最大的特点:容器初始化时,容器的某个目录映射到宿主机,也就是把容器的数据持久化到volume上。container =>docker host

2、Bind Mounts特点

  • 从主机共享配置文件到容器,默认情况下,挂载主机resolv.conf到每个容器,提供DNS解析。
  • 在Docker主机上的开发环境和容器之间共享源代码。例如,可以将Maven target目录挂载到容器中,每次在Docker上构建Maven项目时,容器都可以访问构建最新的项目包。
  • 当Docker主机的文件或目录结构保证与容器所需的绑定挂载一致时。
  • Bind的最大特点是:容器初始化时,宿主机上的某个目录映射到容器的dst目录,并且dst目录原本有内容也会被覆盖掉,本质是宿主机的volume映射到容器。docker host=>container

总结:

volume适应于多个容器共享数据,方便容器数据持久化!

Bind Mounts适应于宿主机和容器共享文件,比如一个网站要经常更新,可以使用Bind方式,每次启动容器可以获取最新版本!

4、Docker数据管理的更多相关文章

  1. Docker数据管理(四)

    Docker数据管理 Docker数据分为两种: 数据卷 -v /data -v src:dst 数据卷容器 --volumes-from 数据卷 案例1:我们创建一个容器,起名叫nginx-volu ...

  2. Docker数据管理

    用户在使用Docker的过程中,往往需要能查看容器内应用产生的数据,或者需要把容器内的数据进行备份,甚至多个容器之间进行数据共享,这必然涉及到Docker的数据管理. 容器中管理数据主要有两种方式: ...

  3. Docker系统七:Docker数据管理

    Docker的数据管理 I. 基本概念 Docker容器一旦删除,其相关的rootf文件系统就会被删除,其容器内的数据将一并删除,为了保存相关数据,Docker提出了数据卷的概念. II. 数据卷 D ...

  4. Docker数据管理(五)

    一.什么是数据卷 生成环境中使用docker的过程中,往往需要对数据进行持久化,或者需要多个容器之间进行数据共享,这个就涉及到了容器数据管理 容器中管理数据主要有两种方式: 数据卷:容器内数据之间映射 ...

  5. Docker数据管理(数据卷&数据卷容器)

    生产环境中使用Docker的过程中,往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享,这必然涉及容器的数据管理操作. 容器中管理数据主要有两种方式: 数据卷(Data Volumes):容 ...

  6. Docker实战(四)之Docker数据管理

    在生产环境中使用Docker的过程中,往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享,这必然涉及到容器的数据管理操作. 容器中管理数据主要有两种形式: 数据卷:容器内数据直接映射到本地主 ...

  7. 【Docker】第五篇 Docker 数据管理

    一.基本介绍 数据管理的原因:Docker中的容器一旦删除,容器本身的rootfs文件系统就会被删除,容器中的所有数据就会被删除.为了对一些需要持久化的数据,不随容器删除而删除,所以我们可以通过多个容 ...

  8. <Docker学习>5. docker数据管理

    当我们创建了一个tomcat容器,如何简单部署一个web应用?如何将war包放入到容器中?也就是说怎么样把文件从宿主机中 "放入" 到容器中? docker cp命令可以将宿主机本 ...

  9. docker数据管理(2)

    一.docker存储资源类型 docker两种存储资源类型 用户在使用 Docker 的过程中,势必需要查看容器内应用产生的数据,或者需要将容器内数据进行备份,甚至多个容器之间进行数据共享,这必然会涉 ...

  10. 六、【Docker笔记】Docker数据管理

    前几节我们介绍了Docker的基本使用和三大核心概念,那么我们在使用Docker的过程中,Docker中必然产生了大量的数据,对于这些数据我们需要查看或者对这些数据进行一个备份,也有可能容器之间的数据 ...

随机推荐

  1. 如何使用 Azure PowerShell 在 Azure Marketplace 中查找 Windows VM 映像

    本主题介绍如何使用 Azure PowerShell 在 Azure Marketplace 中查找 VM 映像. 创建 Windows VM 时使用此信息来指定 Marketplace 映像. 确保 ...

  2. CSS未知宽高元素水平垂直居中

    方法一 :table.cell-table 思路:显示设置父元素为:table,子元素为:cell-table,这样就可以使用vertical-align: center,实现水平居中优点:父元素(p ...

  3. 分享一个基于小米 soar 的开源 sql 分析与优化的 WEB 图形化工具

    soar-web 基于小米 soar 的开源 sql 分析与优化的 WEB 图形化工具,支持 soar 配置的添加.修改.复制,多配置切换,配置的导出.导入与导入功能. 环境需求 python3.xF ...

  4. python基础学习7----编码与解码

    一.python2 python2中默认以ASCII编码 str='hello world' gbk_to_unicode=str.decode('gbk')#将gbk解码为unicode print ...

  5. 常用的 接口访问方法 post 和get

    public string GetFunction(string serviceAddress) { HttpWebRequest request = (HttpWebRequest)WebReque ...

  6. bootstrap模态框input不能获取焦点并编辑【转】

    Bootstrap模态框时input标签[日期控件也有这样的问题]不能编辑的问题,下面是我的解决方法: 1.将下图中框出来的属性删掉即可: 2.兼容火狐浏览器,笔者在火狐中还是不能编辑,去掉下图属性即 ...

  7. python第三十九课——面向对象(二)之初始化属性

    设计Car类,初始化属性speed,提供一个run函数 import time class Car: def __init__(self,speed): self.speed=speed #将Road ...

  8. curl_init 接口

    <?php// +----------------------------------------------------------------------// | ThinkPHP [ WE ...

  9. 如何用IDEA http://localhost:8080/不带上项目名访问

    IDEA TOMCAT设置中把这里的项目名去掉即可

  10. Docker技术入门与实战 第二版-学习笔记-10-Docker Machine 项目-3-Command-line completion命令补全

    Command-line completion https://docs.docker.com/machine/completion/ Installing Command Completion——实 ...