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
二维码
共有 0 条评论