zoukankan      html  css  js  c++  java
  • 4、Docker数据管理

    一、挂载类型

    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
    • 使用命令创建一个volume后,系统会在/var/lib/docker/volume/下面生成一个volume,然后容器的数据会映射到宿主机的volume下。主要用于容器数据的持久化。

    2、Bind Mounts特点

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

    总结:

    volume适应于多个容器共享数据,方便容器数据持久化!比如Mysql数据库进行数据持久化。

    Bind Mounts适应于宿主机和容器共享文件!比如一个网站要经常更新,可以使用Bind方式,每次提交最新的代码,用户访问的也是最新的。

  • 相关阅读:
    2008年6月6日今天终于调回公司本部啦,记录历史的一天。
    动易安全开发手册
    今天开机后发现有些图标变了样(图标变灰色),可是功能都能用
    用CFile类简单读写文件
    【转】动态链接库的静态链接导致程序的DLL劫持漏洞借助QQ程序xGraphic32.dll描述
    失败的人只有一种,就是在抵达成功之前放弃的人
    ListControl
    [转贴]仅通过崩溃地址找出源代码的出错行
    tinyxml文档
    得到程序当前UAC的执行权限,高 中 低
  • 原文地址:https://www.cnblogs.com/skyflask/p/10015580.html
Copyright © 2011-2022 走看看