docker挂载文件的更新问题

将宿主机配置文件挂载到容器,在宿主机修改配置文件,但容器内挂载的文件并未发生变化,直至docker重启。

记得不是这样的。起初以为是版本的原因。于是在最新版docker上做了测试,问题依旧。

只好Google之。最后从docker issue上找到了答案:
docker挂载文件基于inode。vim等编辑工具保存文件时,并非直接保存,而是将一份新的临时文件覆盖了旧文件。对于inode而言,原文件并未被修改。

解决方案有三:
1、换用nano等直接更新文件的编辑工具
2、改为挂载目录。
3、修改vim配置,添加:set backupcopy=yes

参考:
https://github.com/docker/docker/issues/15793
http://www.ruanyifeng.com/blog/2011/12/inode.html