我尝试运行一个挂载两个相同文件系统的目录的docker容器。
--> docker run -dt -v /tmp/a:/tmp/a -v /tmp/b:/tmp/b ubuntu
ee1fc92beb750773218ca8ff5d9df8b42ad34b8a8a0b4e4cb532d2e6b92522d6
由于/ tmp / a和/ tmp / b是主机中的同一文件系统,因此可以在这些文件夹之间创建硬链接。
kenta(:|✔) 17:38:55 %
[/tmp]
--> cd /tmp/a
kenta(:|✔) 17:38:59 %
[/tmp/a]
--> ls
kenta(:|✔) 17:39:00 %
[/tmp/a]
--> touch a
kenta(:|✔) 17:39:04 %
[/tmp/a]
--> ln a ../b
kenta(:|✔) 17:39:10 %
[/tmp/a]
--> ls
a
但是我无法从container中在这两个目录之间创建硬链接。
--> docker exec -it ee1fc92 /bin/bash
root@ee1fc92beb75:/# cd /tmp/
root@ee1fc92beb75:/tmp# cd a/
root@ee1fc92beb75:/tmp/a# touch b
root@ee1fc92beb75:/tmp/b# cd ../
root@ee1fc92beb75:/tmp# ls
a b
root@ee1fc92beb75:/tmp# cd a/
root@ee1fc92beb75:/tmp/a# ls
a b
root@ee1fc92beb75:/tmp/a# ln b ../b/
ln: failed to create hard link '../b/b' => 'b': Invalid cross-device link
I
想要解决此问题而不使用复制命令。我们可以做到吗?
答案 0 :(得分:0)
在容器内部,这些目录是装入点,因此是正确的错误消息。