2016-07-20 12 views
20

I zamontowany pojemnik z tego parametru:/Góra katalog hosta z dowiązania symbolicznego wewnątrz w pojemniku Döcker

-v/home/test:/home/test

Wewnątrz/home/test w hoście jest dowiązaniem symbolicznym wskazującym na folder/mnt /.

Ale to ogniwo, chociaż można zobaczyć, gdzie wskazuje się, wydaje się uszkodzony wewnątrz pojemnika:

[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 

Czy to w ogóle możliwe do zrobienia w dokowanym? Nie jestem pewien, czy istnieje sposób, aby to zrobić.

Wiem, że mogę bezpośrednio zamontować tam, gdzie wskazuje dowiązanie symboliczne, ale zastanawiałem się, czy to możliwe.

+0

Słyszałem kwestii mapowania do '/ mnt' punktów końcowych, które mogą być specyficzne dla gospodarza - najbezpieczniejszą rzeczą byłoby uniknąć, jeśli możesz. – ldg

Odpowiedz

34

Symlink to duże wyzwanie w doku. W twoim przypadku można zamontować obojgu directorires

-v/home/test /:/home/test -v/mnt/mountedfile:/mnt/mountedfile

Dla dowiązania symboliczne do pracy zarówno wewnątrz jak i na zewnątrz pojemnika muszą być absolutnymi ścieżkami i używać dokładnie tych samych nazw.

Ogólnie dowiązania symboliczne nie działają w oknie dokowanym. Znalazłem to na własnej skórze.

0

Jednym z rozwiązań jest sprawienie, aby Docker zamontował oryginalny plik, ale użył readlink -f, który drukuje rzeczywistą lokalizację pliku. W ten sposób możesz nadal odwoływać się do lokalizacji dowiązań symbolicznych w komendzie, np.

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

+0

Nie działa - powoduje to brak tych samych dowiązań symbolicznych –

Powiązane problemy