Mac için Docker birim bağlantıları, temel Docker sisteminden farklı davranır. Bunun nedeni Docker'ın Apple'ın dosya sistemi sanal alan yönergelerine uymaya çalışmasıdır.
Docker tercihlerinde gösterildiği gibi, macOS tarafından yalnızca belirli yollar dışa aktarılır.
/Users
/Volumes
/tmp
/private
/var
macOS'ta /private
. Bu aynı zamanda şunlar için de geçerlidir /tmp
:
$ ls -ld /tmp /var
lrwxr-xr-x@ 1 root wheel 11 Jan 26 16:18 /tmp -> private/tmp
lrwxr-xr-x@ 1 root wheel 11 Jan 26 16:18 /var -> private/var
Neden /tmp
paylaşım panelinde listeleniyor ancak listelenmiyor /var
(her ikisi de bir parçası olmasına rağmen /private
)? Mac için Docker'ın dosya sistemi ad alanlarıyla ilgili belgeleri şunları açıklar:
Varsayılan olarak, dosya paylaşmak /Users/
, /Volumes/
, /private/
, ve /tmp
doğrudan. Docker'a dışa aktarılan dizin ağaçlarını eklemek veya kaldırmak için Docker tercihleri balina menüsü -> Tercihler -> Dosya paylaşımı içindeki Dosya paylaşımı sekmesini kullanın. (Bkz. Tercihler.)
-v
Bağlama bağlamalarında kullanılan diğer tüm yollar , Docker konteynerlerini çalıştıran Moby Linux VM'den kaynaklanır, bu nedenle gibi argümanlar -v /var/run/docker.sock:/var/run/docker.sock
beklendiği gibi çalışmalıdır. Bir macOS yolu paylaşılmıyorsa ve sanal makinede yoksa, onu sanal makinede oluşturmak yerine onu bağlama girişimi başarısız olacaktır. Sanal makinede zaten var olan ve dosyalar içeren yollar Docker tarafından ayrılır ve macOS'tan dışa aktarılamaz.
/var/run
Burada özellikle macOS yerine Linux VM'den monte edilecek bir yer olarak bahsedildiğini unutmayın .
Bir birim bağlama istediğinizde, önce macOS dosya sistemi dışa aktarımları kontrol edilir. Orada eşleşme yoksa, Docker'ın çalıştığı Linux VM daha sonra kontrol edilir. Hiçbiri istediğiniz yola sahip değilse, bağlantı başarısız olur.
Sizin durumunuzda, /var
macOS tarafından dışa aktarılmaz. /var
Linux sanal makinesinde vardır, ancak /var/folders
yoktur. Bu nedenle, yol mevcut değildir ve montaj başarısız olur.
Yolu olarak değiştirirseniz /private/var
başarılı olur çünkü macOS tüm /private
dosya sistemi ağacını montaj için dışa aktarır .
İşleri daha taşınabilir hale getirmek için, şu anda hangi platformda çalıştığınızı test etmek isteyebilirsiniz ve macOS ise bağlama yolunun önüne koyabilirsiniz /private
.
-v /private/var/folders/zz/...
mi