While you could argue that you should not build and push Docker images to staging or production from your local development machine and just incorporate it in your CI/CD pipeline, I prefer having this manual control, which is also nicely supported by the bedrock.io build and deploy commands. Of course a relative performance hit (compared to running on Linux directly) is something I could live with, but my main annoyance presents itself loudly when I’m building (and deploying) a lot of Docker images: it spins up my Macbook pro CPU fans to audible levels, something in stark contrast to the absolute silence at which my laptop runs almost everything else (I guess I’m spoiled). In other words, there is a lot of extra (hyper)virtualization and filesystem overhead going on.
In addition to this, there is an abstraction layer between Mac OS kernel and applications (Docker containers) and the filesystems are not the same. Therefore, there is a client on Mac OS to run Docker. Unfortunately, Mac OS and Windows cannot provide this. The reason for being slow and performance hungry is succinctly explained in this Stackoverflow answer:ĭocker needs a plain Linux kernel to run. One thing, however, that could use improvements is Docker Desktop ( for mac), to increase Docker container performance, speed up docker build times and reduce CPU usage when running “idle”. It is providing these new CLI tools and templates on a stable OS with little to no issues, a nice UI with great HIDPI scaling (rocking a LG 5K monitor over here), and of course I’ve become so used to the interface that switching back to Windows or Linux Desktop would mess up my optimized workflows and habits. While my development stack changed over the years and nowadays includes Docker, Kubernetes and bedrock.io, macOS still continues to serve me well. MacOS is a UNIX operating system running on X86 hardware (changing to ARM soon, but more on that later) that makes developing for Linux production servers a smooth experience utilizing the same UNIX tooling. The solution is using remote Linux Docker host (with setup instructions)Īs a developer I’m a big fan of Apple hardware and software ever since I got my first Macbook back in 2008.Running Docker on macOS results in noisy CPU fans and low performance (build times).