Dudukan volume Docker untuk Mac berperilaku berbeda dari sistem Docker dasar. Ini sebagian besar karena Docker mencoba mematuhi pedoman kotak pasir sistem file Apple.
Seperti yang ditunjukkan di preferensi Docker, hanya jalur tertentu yang diekspor oleh macOS.
/Users
/Volumes
/tmp
/private

/vardi macOS adalah tautan simbolis ke /private. Itu juga berlaku untuk /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
Mengapa /tmpdicantumkan di panel berbagi, tetapi /vartidak (meskipun keduanya adalah bagian dari /private)? Dokumentasi Docker untuk Mac tentang ruang nama sistem file menjelaskan:
Secara default, Anda dapat berbagi file di /Users/, /Volumes/, /private/, dan /tmplangsung. Untuk menambah atau menghapus pohon direktori yang diekspor ke Docker, gunakan tab File sharing di menu paus preferensi Docker -> Preferensi -> Berbagi file. (Lihat Preferensi.)
Semua jalur lain yang digunakan dalam -vbind mount bersumber dari VM Moby Linux yang menjalankan container Docker, jadi argumen seperti itu -v /var/run/docker.sock:/var/run/docker.sockharus berfungsi seperti yang diharapkan. Jika jalur macOS tidak dibagikan dan tidak ada di VM, upaya untuk mengikat pemasangannya akan gagal daripada membuatnya di VM. Jalur yang sudah ada di VM dan berisi file dicadangkan oleh Docker dan tidak dapat diekspor dari macOS.
Perhatikan yang /var/runsecara khusus disebutkan di sini sebagai tempat yang akan dipasang dari VM Linux, bukan dari macOS.
Saat Anda meminta pemasangan volume, ekspor sistem file macOS diperiksa terlebih dahulu. Jika tidak ada kecocokan di sana, VM Linux tempat Docker dijalankan akan diperiksa berikutnya. Jika tidak satu pun dari mereka memiliki jalur yang Anda minta, maka pemasangan gagal.
Dalam kasus Anda, /vartidak diekspor oleh macOS. /varada di VM Linux, tetapi /var/folderstidak. Oleh karena itu, jalur tidak tersedia, dan pemasangan gagal.
Jika Anda mengubah jalur ke /private/var, maka itu akan berhasil, karena macOS mengekspor seluruh /privatepohon sistem file untuk dipasang.
Untuk membuatnya lebih portabel, Anda mungkin ingin menguji platform mana yang saat ini Anda jalankan, dan jika itu macOS, awali jalur pemasangan /private.
-v /private/var/folders/zz/...?