美文网首页
7.管理应用数据

7.管理应用数据

作者: 元代码 | 来源:发表于2017-11-10 11:22 被阅读0次

    1.container可以保存数据,但是有以下缺点:
    a.数据不能持久化,只有container运行时这些数据才存在,并且其他进程很难获取container内的数据。
    b.container读写与它正在运行的机器紧密耦合,很难移动数据。
    c.container读写需要存储驱动来管理文件系统,存储驱动通过Linux内核提供联合文件系统。这层额外的抽象比直接读写主机文件系统耗费性能。

    2.为了解决以上问题,Docker提供了三种方式保存数据volumes、bind mounts、tmpfs(推荐使用volumes)



    Volumes 是Docker管理的主机中的文件系统,非Docker进程不能修改。是官方推荐最好的存储方式。

    Bind mounts 可以存储在主机的任何位置,甚至可以是重要的系统文件夹,非Docker进程也可以修改。

    tmpfs 只在主机的内存中,从不写入的文件系统

    3.使用场景

    Volumes:

    a.在多个运行的container间共享数据,当container停止或被删除,volume仍然存在。多容器可以同时使用volume,volume会一直存在直到手动将其删除。

    b.使container与宿主机的配置文件分离。

    c.想将docker数据存储到远程主机或者云主机中。

    d.想从一个宿主机备份container数据到另一个宿主机。

    Bind mounts:

    a.使主机和container共享配置文件。

    b.共享代码或者构建工程,举例:可以在container放一个maven的target文件夹,每次在主机构建工程,container都能得到构建成果。

    c.当主机的文件或者目录需要和container保持一致时。

    tmpfs

    不需要持久化数据时,更安全,更高效。

    4.使用方式

    Volumes https://docs.docker.com/engine/admin/volumes/volumes/

    Bind mounts https://docs.docker.com/engine/admin/volumes/bind-mounts/

    tmpfs https://docs.docker.com/engine/admin/volumes/tmpfs/

    相关文章

      网友评论

          本文标题:7.管理应用数据

          本文链接:https://www.haomeiwen.com/subject/qaqbmxtx.html