Docker数据存储总结
阅读本文前,希望你已经对Volumes,Bind mounts和tmpfs mounts有了初步的了解,具体可以参考以下文章:
- Docker数据存储之Volumes
- Docker数据存储之Bind mounts
- Docker数据存储之tmpfs mounts
下图展示了Volumes,Bind mounts和tmpfs mounts三种存储技术的不同:
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将一个宿主机目录挂载到容器目录上,此容器目录中原有的文件会被隐藏,从而只能读取到宿主机目录下的文件。
参考文章
https://docs.docker.com/storage/#good-use-cases-for-tmpfs-mounts
相关推荐
憧憬 2020-08-21
wa2003 2020-06-17
悟空大师 2020-06-06
辛佳雨 2020-06-02
fangxiaoji 2020-05-12
loviezhang 2020-04-17
Charlesbases 2020-04-16
whyname 2020-03-07
wzhwangzhuohui 2020-03-04
flyDeDog 2020-02-25
qijiqiguai 2020-02-13
zxznsjdsj 2020-02-02
chenjinlong 2020-01-31
大脸猫脸大 2020-01-26
wintershii 2020-01-18
东哥笔记 2020-01-17