1
我的问题是关于从主机挂载的目录中的容器内创建符号链接时发生的情况。如果我只是问一个例子,这是最简单的。主机卷中的符号链接如何在Docker容器中工作?
假设我们像这样开始一个容器。大部分命令无关紧要,这里重要的是主机卷装载。
docker run --rm -ti -h thecontainer -v /home/userguy:/container-home alpine /bin/sh
而在容器创建在主机卷目录
thecontainer$ ln -s /tmp /container-home/tmp-link
符号链接虽然在容器中,我可以ls /container-home/tmp-link
,我看到容器的/tmp
的内容符合市场预期。
现在,如果我回到我的主机,我看到链接/home/userguy/tmp-link -> /tmp
。如果我在ls
那个目录中看到主机的内容/tmp
。即不同的结果。
我的问题是,主机卷如何在允许此情况发挥作用的封面下工作?这是Docker还是lxc本身的产品?我很惊讶地看到这个工作,因为思想符号链接指向inode并且容器中的假设/ tmp将与主机上的/ tmp不同。
好的,我不确定软链接是否也引用了inode。所以符号链接只包含一个路径,并且在读取时解析该路径。因此,我所看到的行为只是符号链接如何工作的一个函数? –
这是正确的。 –