您的位置:首页 > 运维架构 > Docker

7.Docker-管理应用数据

2018-01-04 17:50 483 查看
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/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: