

#DOCKER ON MAC PERFORMANCE FOR MAC#
You won't have to worry about the details though, as they package it as part of the Docker for Mac Edge build. At the very least, the jet plane taking off might only happen every once in a while versus all the time.Īs of this date, Docker has a blessed approach for minimizing resource consumption on disk changes using something under the hood called Mutagen. The options below will get you closer to parity with the experience on Linux. While it is true that Docker on Linux is the architecture as intended (and therefore is the best experience), simply switching is not tenable for most folks. This is the part where many would tell you to "just develop on Linux". All that synchronizing work between these layers is not trivial! This is also why you see the Hyperkit process usually consuming much of your CPU even at idle. The jet plane taking off when you do a docker-compose up on macOS? It's your Host OS' resources hard at work to synchronize low-level I/O (specifically disk and network) between the Host OS and Containers this is on top of having to run the Containers themselves.
#DOCKER ON MAC PERFORMANCE CODE#
:max_bytes(150000):strip_icc()/Dockiconannotated-fa0989566ec147639a1b5ce290c02032.jpg)
Your typical Docker development setup is usually as follows: Whereas Docker for Linux essentially has a direct line to the Host OS (and, by extension, the disk, network, GPU, etc), Docker for macOS has to go through several abstractions to do low-level tasks. It then can only access the kernel of that VM, which then has to go through the steps above to synchronize the disks of your Containers and the Host OS. Now, while it may be called Docker for macOS, it is architecturally different than Docker on Linux.Īs you can see above, instead of accessing the Host OS directly, Docker for macOS instead has to spin up its own Linux VM.


We've all heard the jokes from practically anyone with their development environments on Docker for Mac: it makes your Mac sound like a jet plane at takeoff.
