For improving performance, you can enable some of the newer experimental features in latest docker (Virtualization Framework and VirtioFS). The combination works really well except for databases [1] due to the way FS sync is handled. To fix that a setting need to be changed in the linux VM that docker uses. [2]. Hopefully docker will make that a default setting in the future.
[1] https://github.com/docker/roadmap/issues/7#issuecomment-1042... [2] https://github.com/docker/roadmap/issues/7#issuecomment-1044...
https://multipass.run/docs/docker-tutorial
And I second the other commenter's recommendation of VSCode's Remote Container extension.
https://code.visualstudio.com/docs/remote/containers
And possibly using Podman instead of Docker.
https://opensource.com/article/21/7/vs-code-remote-container...