docker 使用volumes 挂载单文件的“坑”

最近重度使用docker,发现一个问题:把env.conf配置文件挂载进docker里面去。

启动的时候配置文件是正常的,但编辑了配置文件后,docker里面的版本不会同步更新。

这个问题持续了很久,目录挂载倒是不会出现这个问题。

后来了解到这是一个docker“坑”:docker 用 inode来判定宿主机/docker同一个文件。

使用vim来修改宿主机配置文件,或者是修改docker里面的问题,会导致文件的inode变化:实际上是删除原来的文件,再新建一个同名文件。

类似的 sed -i 也是会导致文件inode变化的。

值得注意的是,有的系统的vim是不会改变inode的,这样修改宿主机配置文件又是安全的。相当的迷惑。

有鉴于此,非著名docker主张最佳实践: 不要挂载单文件 挂载目录吧。

 

主机差评君首发于zhuji188.com,转发请标明来源https://zhuji188.com/959.html
THE END
分享
二维码
< <上一篇
下一篇>>