docker挂载单文件问题

转载自https://www.cnblogs.com/ZYTZ/p/13047948.html

关于docker中文件夹挂载成功 但是单文件挂载却没有生效的问题

因为用vim修改这里会有一个坑

docker -v mount 的机制:

-v mount 文件(或文件夹)时,docker 记录的是该文件的 inode,并用 inode 追踪。当用 vim 编辑了文件后,这个文件的 inode 就变了,也就是说这个 default.conf 文件已经不是运行 docker run 时的那个 default.conf 文件了,容器中自然也就没了新的改动。 同时该 issue 的 opener 使用的是 sed -i 修改,也会使 inode 发生变化,sed -i 的机制是创建一个新的临时文件,修改完后在重命名。对此,官方的建议是挂载文件夹,而不是文件。
https://github.com/moby/moby/issues/6011
上面这段参考:https://www.dazhuanlan.com/2020/01/02/5e0d7cfd57df8/

经测试发现,

  1. 我挂载单文件的nginx的container,没重启之前修改挂载的单文件没有生效,但重启之后修改的配置文件确实会更新,对于nginx来说配置更新本身就需要重启,所以挂载文件其实也可以。
  2. 但对于那些需要修改单文件但又想不重启container, 就可以实现更新的情况可以考虑挂载文件夹。我这里改为挂载文件夹
原文地址:https://www.cnblogs.com/faberbeta/p/14134615.html