Docker - 挂载目录(bind mounts)和Volume是不同的

本文探讨了Docker中挂载目录(bind mounts)与Volume的差异。挂载目录依赖宿主机路径,导致跨平台部署时路径问题和权限困扰。Volume由Docker管理,解决了这些问题,提供跨平台兼容性和权限管理。Volume创建后,可直接使用其名称挂载,避免路径问题。此外,挂载目录会复制容器内容到外部目录,而Volume则反之。对于单文件如配置文件,推荐使用bind mount或tmpfs,以保护敏感信息。
摘要由CSDN通过智能技术生成

2019/10/25更新:

docker commit是不能对容器中volume声明的目录改动进行保存的,无论是Dockerfile中的VOLUME字段,还是docker-compose.yaml中的volumes配置。

 

分割线,知乎上学到的套路。以下是原文:


一直一来,对于多个容器需要共享访问同一数据目录,或者需要持久化容器内数据(如数据库)时,我们都是采用挂载目录形式(bind mounts),将宿主机的某一目录挂载到容器内的指定目录,这种方式能解决问题,但这种方式也一直有一些缺点:

  • 容器在不同的服务器部署需要根据实际磁盘挂载目录修改路径
  • 不同操作系统的文件和目录权限会搞得你昏头转向,火冒三丈 ?

而这些问题,使用Volume就可以解决。我们先来对比一下bind mounts和docker volume,然后看volume是如何解决bind mounts的问题的。先来看一张图:

此图来自docker官方文档
此图来自docker文档

 

这张图说明bind mount和volume其实都是利用宿主机的文件系统,不同之处在于volume是docker自身管理的目录中的子目录ÿ

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值