K8S

Docker数据存储总结

2018-05-22  本文已影响179人  伊凡的一天

阅读本文前,希望你已经对Volumes,Bind mounts和tmpfs mounts有了初步的了解,具体可以参考以下文章:

下图展示了Volumes,Bind mounts和tmpfs mounts三种存储技术的不同:


image.png

Volumes的使用场景

  1. 在多个容器间共享数据。
  2. 无法确保Docker主机一定拥有某个指定的文件夹或目录结构,使用Volumes可以屏蔽这些宿主机差异。
  3. 当你希望将数据存储在远程主机或云提供商上。
  4. 当你希望备份,恢复或者迁移数据从一台Docker主机到另一台Docker主机,Volumes是更好的选择。

Bind mounts的使用场景

  1. 在宿主机和容器间共享配置文件。例如将nginx容器的配置文件保存在宿主机上,通过Bind mounts挂载后就不用进入容器来修改nginx的配置了。
  2. 在宿主机和容器间共享代码或者build输出。例如将宿主机某个项目的target目录挂载到容器中,这样在宿主机上Maven build出一个最新的产品,可以直接咋i容器中运行,而不用生成一个新的镜像。
  3. Docker主机上的文件或目录结构是确定的

tmpfs mounts的使用场景

  1. 当你因为安全或其他原因,不希望将数据持久化到容器或宿主机上,那你可以使用tmpfs mounts模式。

Bind mounts和Volumes行为上的差异

参考文章

上一篇下一篇

猜你喜欢

热点阅读