Hardlink не будет создан в Docker-контейнере, даже если они находятся в одной файловой системе с хоста - PullRequest
0 голосов
/ 23 января 2019

Я пытаюсь запустить докер-контейнер с монтированием двух разных каталогов, которые являются одной и той же файловой системой.

    --> 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

Однако я не могу создать жесткую ссылку между этими двумя каталогами из контейнера.

    --> 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

хочу решить проблему без использования команды копирования.Можем ли мы сделать это?

1 Ответ

0 голосов
/ 23 января 2019

Внутри контейнера эти каталоги являются точками монтирования, отсюда и правильное сообщение об ошибке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...