解决docker通过volumes挂载文件,宿主机修改后容器内不同步,重启服务才能同步

将文件的权限改为777,即chmod 777 filename

详细解释在该文章:
https://huaweicloud.csdn.net/633114e5d3efff3090b51a5a.html

说明:

这是由于linux系统文件挂载机制导致的。

docker通过volumes挂载文件到容器中,有以下两种方式:

1、挂载目录

2、挂载具体文件:并不是挂载了某个文件的路径,而是挂载了对应的文件,即挂载了linux指定的inode文件。

当使用vim之类的编辑器进行保存时,它不是直接保存文件,而是采用了备份、替换的策略。就是编辑时,创建了一个新文件,在保存的时候把备份文件替换为源文件,这个时候文件的inode就发生了变化,而原来indode对应的文件其实并没有修改,也就是容器内的文件没有变化。当重启容器的时候,会挂载新的inode.

当把文件的权限修改为777之后,vim的时候inode的值不会改变。

相关推荐
CCPC不拿奖不改名2 小时前
虚拟机基础:在VMware WorkStation上安装Linux为容器化部署打基础
linux·运维·服务器·人工智能·milvus·知识库搭建·容器化部署
fjh19973 小时前
记一次奇怪的ssh公钥登录失败的情况
运维·ssh
dinga198510265 小时前
linux上redis升级
linux·运维·redis
一条闲鱼_mytube5 小时前
Kubernetes Operator 原理与实践:从入门到实战
云原生·容器·kubernetes
匀泪6 小时前
云原生(nginx实验(2))
运维·nginx·云原生
RisunJan6 小时前
Linux命令-ltrace(用来跟踪进程调用库函数的情况)
linux·运维·服务器
c***03236 小时前
linux centos8 安装redis 卸载redis
linux·运维·redis
DeeplyMind6 小时前
第6章 Docker镜像基础操作
运维·docker·容器
柏木乃一6 小时前
Linux进程信号(2):信号产生part2
linux·运维·服务器·c++·信号处理·信号·异常
马丁的代码日记7 小时前
Docker 无法拉取镜像的解决方案
运维·docker·容器