椰狮 发表于 2025-4-11 14:27

关于Docker的硬链接问题,请大佬帮忙解惑

已知硬链接限制
1)不能跨文件系统。
2)只能在同一个分区建立数据关联。
3)不能连接目录。

在宿主机家目录下硬链接A文件夹的文件至家目录下的B文件夹,成功(废话)
ln ./A/Movie/Deadpool\ And\ Wolverine\ 2024\ 1080p\ Bluray\ HEVC\ x265\ 10Bit\ DDP5.1\ Subs\ KINGDOM.mkv ./B/Movie/Deadpool.mkv

将A,B文件夹映射进Docker后进行同样的硬链接操作
docker.yaml
.....
    volumes:
      - '/root/A:/A'# 媒体库或下载库路径
      - '/root/B:/B'
.....

ln /A/Movie/Deadpool\ And\ Wolverine\ 2024\ 1080p\ Bluray\ HEVC\ x265\ 10Bit\ DDP5.1\ Subs\ KINGDOM.mkv /B/Movie/Deadpool___.mkv
ln: failed to create hard link '/B/Movie/Deadpool___.mkv' => '/A/Movie/Deadpool And Wolverine 2024 1080p Bluray HEVC x265 10Bit DDP5.1 Subs KINGDOM.mkv': Invalid cross-device link


df /A /B
Filesystem   1K-blocks   Used Available Use% Mounted on
/dev/vda1       41111748 30580848   882247278% /A
/dev/vda1       41111748 30580848   882247278% /B

stat -c '%d %n' "/A"
65025 /A

stat -c '%d %n' "/B"
65025 /B

我就奇了怪了容器里的A,B目录看起来都是在同一个分区内,设备号也是一样的,为什么会出现跨盘错误?
[晕倒] [晕倒] [晕倒] [晕倒] [晕倒] 网上找了一圈没找到相关的解答,chat**回的也是牛头不对马嘴

求大佬解惑

椰狮 发表于 2025-4-11 14:32

不对好像找到问题了
容器内执行df /A /B
Filesystem   1K-blocks   Used Available Use% Mounted on
/dev/vda1       41111748 30580848   882247278% /A
/dev/vda1       41111748 30580848   882247278% /B

在宿主机上发现都是Monted on /
页: [1]
查看完整版本: 关于Docker的硬链接问题,请大佬帮忙解惑