tl;dr: Docker’s default bind mount performance for projects requiring lots of I/O on macOS is abysmal. It’s acceptable (but still very slow) if you use the
delegatedoption. But it’s actually fairly performant using the barely-documented NFS option!
Ever since Docker for Mac was released, shared volume performance has been a major pain point. It was painfully slow, and the community finally got a
cached mode that offered a 20-30x speedup for common disk access patterns around 2017. Since then, the File system performance improvements issue has been a common place to gripe about the lack of improvements to the underlying
Since around 2016, support has been around (albeit barely documented) for NFS volumes in Docker (see Docker
local volume driver-specific options).