欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

Docker数据存储总结

程序员文章站 2022-09-24 16:51:29
阅读本文前,希望你已经对volumes,bind mounts和tmpfs mounts有了初步的了解,具体可以参考以下文章: docker数据存储之volume...

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

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

Docker数据存储总结

volumes的使用场景

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

bind mounts的使用场景

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

tmpfs mounts的使用场景

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

bind mounts和volumes行为上的差异

  • 如果你将一个空volume挂载到一个非空容器目录上,那么这个容器目录中的文件会被复制到volume中,即容器目录原有文件不会被volume覆盖。
  • 如果你使用bind mounts将一个宿主机目录挂载到容器目录上,此容器目录中原有的文件会被隐藏,从而只能读取到宿主机目录下的文件。

参考文章

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接