Docker: Supports refusé. Les chemins d'accès ... ne sont pas partagés à partir d'OS X et ne sont pas connus à Docker
La commande docker run -v /var/folders/zz/...
génère l'erreur suivante.
docker: Error response from daemon: Mounts denied:
The paths /var/folders/zz/... and /var/folders/zz/...
are not shared from OS X and are not known to Docker.
You can configure shared paths from Docker -> Preferences... -> File Sharing.
Quand je fais ouvrir le Partage de Fichier, je vois que /privé est déjà répertoriés.
Si je tente d'ajouter /var/folder/
, il se résout à /private/var/folders
, qui est un sous-ensemble de /privé et donc le plus est rejetée.
Pour résumer, il me semble que le répertoire /var/folders/..
est partagée par OS X comme un sous-répertoire de /private
et doit donc être connue de Docker. Toute aide sur la résolution de ce serait appréciée.
Comme une expérience, j'ai remplacé le /private
dans le Partage de Fichiers avec /private/var/folders
et redémarré le menu fixe mais le résultat n'a pas changé.
Juste pour une référence plus complète, c'est le .sh script, qui s'exécute ce script python, qui exécute à son tour le panneau de commande.
- Avez-vous essayé
-v /private/var/folders/zz/...
? - Je n'avais pas, parce que le code est allé comme
WORKING_DIR="$(mktemp -d)
et,-v ${WORKING_DIR}
. Mais le piratage que deWORKING_DIR="/private"$(mktemp -d)
, semble résoudre le problème. Merci beaucoup 🙂 - Je vais poster une réponse expliquant pourquoi il a travaillé quand je reçois quelques minutes
- Ce serait sympa, merci encore.
Vous devez vous connecter pour publier un commentaire.
Docker pour Mac volume supports de se comporter différemment de la base de Support système. C'est surtout parce que Docker essaie de se conformer à Apple de fichiers du sandbox de lignes directrices.
Comme indiqué dans le Panneau de préférences, seulement certains chemins sont exportées par macOS.
/Users
/Volumes
/tmp
/private
/var
dans macOS est un lien symbolique dans/private
. Cela est également vrai pour/tmp
:Pourquoi est
/tmp
répertoriés dans le panneau de partage, mais/var
n'est pas (même si les deux sont une partie de/private
)? Docker pour Mac de la documentation sur les espaces de noms du système de fichiers explique:Noter que
/var/run
est spécifiquement mentionné ici comme un lieu qui pourrait être installé à partir de la machine virtuelle Linux, au lieu de partir de macOS.Lorsque vous demandez un montage de volume, macOS système de fichiers, les exportations sont vérifiés en premier lieu. Si aucune correspondance n'est trouvée là, la machine virtuelle Linux où le Panneau est en cours d'exécution est cochée. Si aucun d'entre eux ont le chemin que vous avez demandé, le montage échoue.
Dans votre cas,
/var
n'est pas exportée par macOS./var
existe dans la machine virtuelle Linux, mais/var/folders
ne le fait pas. Par conséquent, le chemin n'est pas disponible, et le montage échoue.Si vous modifiez le chemin d'accès à
/private/var
, puis il va réussir, parce que macOS exportations de l'ensemble de la/private
arborescence du système de fichiers pour le montage.Afin de rendre les choses plus portable, vous pouvez tester la plate-forme sont actuellement en cours d'exécution, et si c'est macOS, préfixe du chemin de montage avec
/private
.-v /var/janus:/var/janus
. Dois-je changer le chemin d'accès à démarrer avec/private
dans les deux chemins (avant et après:
) ou juste le premier?mac-path:container-path
, et/private
n'existe que sur le Mac à côté de lui./etc
est un lien vers/private/etc
. Et/private
est déjà sur la liste des exports dans le Panneau de préférences. Essayez de montage/private/etc/localtime
à la place./private/etc/localtime
le Panneau de préférences, je voulais juste monter ce chemin lors de la création de votre conteneur, par exemple/private/etc/localtime:/etc/localtime
/private/etc/localtime
pour mac os,/etc/localtime
pour ubuntu. Comment dire le système d'info dans le menu fixe-composer.yml? Merci!!!!/val
le journal) et où il n'est "PAS une option" ajouter des OS, à la condition qu'loggint à la source Python.Comme un exemple, en utilisant Portainer, cette commande fonctionne pour moi:
Mais, si je varie les
-v /var:/data
à tous, il ne fonctionnera pas. Je pense (mais pas sûr) que c'est parce que Docker est en train de faire un mkdir. Donc, si je tente de monter-v /var/whatever:/data
, mkdir échoue parce que pas assez de permission, et il ne fonctionne pas.J'ai 2 Mac (High Sierra) et je l'ai essayé sur les deux. Même problème. Aussi, j'ai essayé d'utiliser Docker Bêta canal. Je crois que je comprends Dan Lowe réponse: je vais mettre à jour cette réponse si cela fonctionne pour moi.