需求:
需要将Nginx的欢迎页面也就是index.html文件进行修改。
原始方法:由于docker会为每一个容器创建其对应的文件信息,但是创建的信息内容只有其最基础的运行信息,所以想要直接去访问其index.html就无法做到。
使用volume:在创建容器时,使用-v指令来指定对应的虚拟卷volume。将容器的虚拟卷volume与宿主机的文件进行挂载,通过访问宿主机的文件系统来对容器对应内容进行修改即可。
疑惑点:
1.容器的虚拟卷为什么能够与宿主机直接进行挂载,或者说为什么修改宿主机的文件信息,可以使对应容器的内容发生修改,底层如何实现?
答:挂载(bind mount)让同一份磁盘数据在宿主机和容器内出现两次路径,二者共享 inode,读写的是同一个底层文件。并没有额外的“索引文件”或“映射表”在不停地来回同步——它们本来就是同一份。
2.index.html是否最初就在容器中存在?为什么原本无法访问,而挂载后就可以访问?