Docker容器卷映射至主机时硬链接的保留情况问询
Docker卷映射下硬链接的行为分析
针对你描述的场景,分两种卷类型说明实际行为:
1. Bind Mount(主机目录挂载)
当使用-v /home/me/my_opt:/opt参数启动容器时:
- 主机的
/home/me/my_opt目录会直接挂载到容器内的/opt路径,容器内原有的/opt/foo、/opt/bar及硬链接文件会被完全隐藏,不会自动复制到主机目录中。 - 若主机目录为空,容器内
/opt路径下将看不到任何原有内容;若主机目录已有文件,容器内/opt会显示主机目录的内容。 - 这种情况下不存在硬链接保留或文件复制的问题,因为容器原内容根本不会被同步到主机。
2. Named Volume(命名卷)
如果使用命名卷(如-v my_opt_volume:/opt):
- 第一次启动容器时,Docker会自动将容器内
/opt目录的所有内容复制到新建的命名卷中。 - 复制过程会保留硬链接关系:卷内的
foo/data.txt和bar/data.txt仍为硬链接,共享同一个inode,仅占用1GB磁盘空间,不会出现文件复制占用2GB的情况。
需要注意的是,只有命名卷会自动同步容器内初始内容到卷中,bind mount不会做这个操作。
内容的提问来源于stack exchange,提问作者davidbaguetta
相关产品推荐
相关产品推荐

