欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

关于docker挂载文件的生效问题的疑惑

程序员文章站 2022-05-15 13:09:54
...

docker直接修改挂载文件,理论上是可以直接反应在容器内部的,他们共享一个文件,为何在宿主机内修改无效呢,而你以为只有重启才会使修改生效?其实不是的。

如果直接用vi编辑宿主机文件,这是因为用vi编辑保存时会修改文件的inode,Linux系统内部不使用文件名,而是使用inode号码识别文件。对于系统来说文件名只是inode号码便于识别的别称

修改前:

[email protected]:/home/llx/test# stat  config.js 
  File: config.js
  Size: 215       	Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d	Inode: 1577292     Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/     lcx)   Gid: ( 1000/     lcx)
Access: 2020-03-06 01:01:28.635119676 +0000
Modify: 2020-03-06 01:01:21.855586110 +0000
Change: 2020-03-06 01:01:21.855586110 +0000
 Birth: -

使用vi修改

 vi nginx.conf

修改后,可以发现Inode变了。

[email protected]:/home/llx/test# stat  config.js 
  File: config.js
  Size: 215       	Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d	Inode: 1579271     Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/     lcx)   Gid: ( 1000/     lcx)
Access: 2020-03-06 01:23:28.188175929 +0000
Modify: 2020-03-06 01:23:28.188175929 +0000
Change: 2020-03-06 01:23:28.196175914 +0000
 Birth: -
[email protected]:/home/lcx/aimp.fornt# 

正确操作,使用cat不会更改inode

# cp config.js config2.js 
# vi config2.js
# cat config2.js > config.js

更多关于Inode阅读

个人站欢迎访问