When running docker dev environment with Linux and Windows (with WSL2), it’s already in the same container context so the performance is decent. However, on Mac there’s no WSL2 equivalent so bind mounts are painfully slow due to the overhead of translation between the Mac’s and container filesystem.
Is there any way to run the code in docker VM like WSL2 allows?
I moved off docker engine and to colima for this very reason. Mounts are speedy now
I’ve been looking at this, we use Docker Desktop for local development on M1 Macs. Is there a reason to switch? Does it have a lower memory footprint?
It’s a lot more performant, because it makes use of apple’s built in virtualization tools. You can adjust how much memory, CPU, and storage are given to the vm
Does it support docker compose?
Yep. Using it daily
OrbStack might work for you: https://orbstack.dev/
Depending on the Mac you’re using you can set up a VM directly using a hypervisor like VirtualBox or UTM to help improve performance. However if you’re trying to run a production application on a MacBook using docker you’re going to have a bad time. If you’re trying to performance test you’re better off trying to set up a cloud instance in Amazon using Linux to get better performance
Production runs on Linux server. The problem is with development environment, I want to avoid Virtualbox as it would be an extra overhead to manage and affect DX.
Instead of using something like a bind mount you could try using a Network file share like NFS which has pretty good performance or you could use samba but performance is not its strong suit.