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

/varmacOS'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 /tmppaylaşı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 /tmpdoğ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.)
-vBağ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.sockbeklendiğ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/runBurada ö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, /varmacOS tarafından dışa aktarılmaz. /varLinux sanal makinesinde vardır, ancak /var/foldersyoktur. Bu nedenle, yol mevcut değildir ve montaj başarısız olur.
Yolu olarak değiştirirseniz /private/varbaşarılı olur çünkü macOS tüm /privatedosya 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