Подтвердить что ты не робот

Подключить каталог хоста с символической ссылкой внутри контейнера докеров

Я установил контейнер с этим параметром:

-v/home/test/:/home/test

Внутри/home/test в хосте есть символическая ссылка, указывающая на папку /mnt/.

Но эта ссылка, хотя видно, где она указана, кажется разбитой внутри контейнера:

[email protected]:/var/www/html# cd /home/test/ 
[email protected]:/home/test# ls -lrt 
total 11956 
lrwxrwxrwx. 1 root root 40 Jul 20 15:55 file -> /mnt/mountedfile/
[email protected]:/home/test# ls -lrt file/*
ls: cannot access file/*: No such file or directory

Возможно ли это сделать в докере? Я не уверен, есть ли способ сделать это.

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

4b9b3361

Ответ 1

Symlink - большая проблема внутри докера. В вашем случае вы можете установить обе директории

-v/home/test/:/home/test -v/mnt/смонтированный файл:/mnt/смонтированный файл

Для символических ссылок для работы внутри и снаружи контейнера должны быть абсолютные пути и использовать точно такие же имена.

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

Ответ 2

Одним из решений является создание Docker для монтирования исходного файла, но используйте readlink -f, который печатает фактическое местоположение файла. Таким образом, вы можете по-прежнему ссылаться на расположение символической ссылки в вашей команде, например.

docker run -it -v $(readlink -f /home/test/):/home/test/ ...