docker 踩坑记

一、docker 通过 volumes 挂载文件,修改宿主机文件,容器文件不同步

原因分析:docker挂载文件时,并不是挂载了某个文件的路径,而是挂载了对应的文件,即挂载了linux指定的inode文件。
当使用vim之类的编辑器进行保存时,它不是直接保存文件,而是采用了备份、替换的策略,就是编辑时,是创建一个新的文件,在保存的时候,把备份文件替换源文件,这个时候文件的 inode 就发生了变化,而原来 inode 对应的文件其实并没有修改,也就是容器内的文件没有变化。

解决办法:

方法一:重启容器

方法二:不要挂载文件,使用挂载目录

方法三:设置文件的备份行为为覆盖

vim filename

:set backupcopy=yes

 

你可能感兴趣的:(Docker)