As montagens de volume do Docker para Mac se comportam de maneira diferente do sistema Docker base. Isso ocorre principalmente porque o Docker tenta cumprir as diretrizes de sandbox do sistema de arquivos da Apple.
Conforme mostrado nas preferências do Docker, apenas alguns caminhos são exportados pelo macOS.
/Users
/Volumes
/tmp
/private

/varno macOS é um link simbólico para /private. Isso também é verdade para /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
Por que está /tmplistado no painel de compartilhamento, mas /varnão está (embora ambos façam parte de /private)? A documentação do Docker para Mac sobre namespaces de sistema de arquivos explica:
Por padrão, você pode compartilhar arquivos em /Users/, /Volumes/, /private/, e /tmpdiretamente. Para adicionar ou remover árvores de diretório que são exportadas para o Docker, use a guia Compartilhamento de arquivos nas preferências do Docker no menu da baleia -> Preferências -> Compartilhamento de arquivos. (Veja Preferências.)
Todos os outros caminhos usados em -vmontagens de ligação são originados da VM Moby Linux que executa os contêineres do Docker, portanto , os argumentos -v /var/run/docker.sock:/var/run/docker.sockdevem funcionar conforme o esperado. Se um caminho do macOS não for compartilhado e não existir na VM, uma tentativa de montagem de vinculação falhará em vez de criá-lo na VM. Os caminhos que já existem na VM e contêm arquivos são reservados pelo Docker e não podem ser exportados do macOS.
Observe que /var/runé mencionado especificamente aqui como um local que seria montado a partir da VM Linux, em vez do macOS.
Quando você pede uma montagem de volume, as exportações do sistema de arquivos macOS são verificadas primeiro. Se não houver correspondência, a VM Linux onde o Docker está sendo executado será verificada a seguir. Se nenhum deles tiver o caminho solicitado, a montagem falhará.
No seu caso, /varnão é exportado pelo macOS. /varexiste na VM Linux, mas /var/foldersnão. Portanto, o caminho não está disponível e a montagem falha.
Se você alterar o caminho para /private/var, terá êxito, porque o macOS exporta toda a /privateárvore do sistema de arquivos para montagem.
Para tornar as coisas mais portáteis, você pode querer testar em qual plataforma você está executando atualmente e, se for macOS, prefixe o caminho de montagem com /private.
-v /private/var/folders/zz/...?