关于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
上一篇: Docker Run
下一篇: 妈妈再也不用担心我使用moment了