小知识:为什么不推荐Docker文件挂载?

%小知识:为什么不推荐Docker文件挂载?-猿站网-插图

今天群里小伙伴发了一个疑问,它通过docker启动了个nginxnginx的一些相关配置文件都是通过文件的方式进行映射的,疑问的点在于,在宿主机上修改了文件,为什么对应映射到容器里面的文件内容没有改变?

话不多说,起个容器看

docker run –name nginx -p 8082:80 -v /opt/nginx/nginx.conf:/etc/nginx.conf -d nginx Unable to find image nginx:latest locally latest: Pulling from library/nginx a2abf6c4d29d: Pull complete a9edb18cadd1: Pull complete 589b7251471a: Pull complete 186b1aaa4aa6: Pull complete b4df32aa5a72: Pull complete a0bcbecc962e: Pull complete Digest: sha256:0d17b565c37bcbd895e9d92315a05c1c3c9a29f762b011a10c54a66cd53c9b31 Status: Downloaded newer image for nginx:latest 3d669ab21cfc6845f8f7105233215c9ab9002ddd06af1132fba257e14f93121e

我这里直接映射了个nginx的主配置文件,别管目录对不对,只是验证文件修改

然后此时的文件内容应该是一致的,现在直接修改宿主机上的/opt/nginx/nginx.conf文件,首行加一个注释

%小知识:为什么不推荐Docker文件挂载?-1猿站网-插图

保存后,进容器,看下容器内的nginx.conf文件内容,也可以直接执行命令查看

进入容器 docker exec -it 3d /bin/bash 查看文件开头 head /etc/nginx.conf 或者直接在宿主机查看 docker exec 3d cat /etc/nginx.conf

%小知识:为什么不推荐Docker文件挂载?-2猿站网-插图

可以看到,文件内容未改变

这是为什么呢?

这个问题,和Linux文件的inode有关系

第一次启动容器的时候,看下两个文件的inode

宿主机

%小知识:为什么不推荐Docker文件挂载?-3猿站网-插图

容器

%小知识:为什么不推荐Docker文件挂载?-4猿站网-插图

可以看到是同一个inode,也就是同一个文件,宿主机修改了文件内容后,再对比

宿主机

%小知识:为什么不推荐Docker文件挂载?-5猿站网-插图

容器

%小知识:为什么不推荐Docker文件挂载?-6猿站网-插图

两个就不是一个文件,此时想要容器内文件生效,需要重启容器,重新加载新的文件

%小知识:为什么不推荐Docker文件挂载?-7猿站网-插图

再看下目录映射的情况,还是启动个容器

docker run –name nginx -p 8082:80 -v /opt/nginx:/opt/ -d nginx 537fc0c513d3bb83bb78d4f8333ede6a8a9d53070108ab55be5a8b9f2347ac9c

这次用目录挂载,本地/opt/nginx挂载到容器/opt/下面 ,之后重复上面的操作,查看inode,修改文件,对比inode

%小知识:为什么不推荐Docker文件挂载?-8猿站网-插图

可以看到,目录挂载是没有问题的,容器内文件随宿主机文件实时改变的

为什么目录可以呢?实际上就是那句经典,Linux下,一切皆文件,目录也是一种特殊的文件,实际上它也是有自己的inode,挂载目录的话,它实际上是将容器内目录的inode指向到了宿主机的目录

%小知识:为什么不推荐Docker文件挂载?-9猿站网-插图

所以目录内文件的改变,会实时改变,而文件挂载的话,实际容器内指向的inode还是原来的,而现在的文件实际上已经不是该inode了

本文转载自微信公众号「运维研习社」,可以通过以下二维码关注。转载本文请联系运维研习社公众号。

%小知识:为什么不推荐Docker文件挂载?-10猿站网-插图

原文链接:https://mp.weixin.qq.com/s/pObD2RKHRMIUyD_WplqOrg

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:Vmware虚拟机设置固定IP地址的方法( 图文教程)

2023-3-12 19:25:43

建站知识

小知识:实操Install Victoriametrics in K8s

2023-3-12 19:40:45

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索