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

探讨Docker中挂载文件修改为何有时不立即生效的原因。深入inode机制,揭示使用不同编辑器对文件修改的影响,及如何正确操作以避免此类问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

修改前:

root@rancher:/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变了。

root@rancher:/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: -
root@rancher:/home/lcx/aimp.fornt# 

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

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

更多关于Inode阅读

个人站欢迎访问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值