However, assuming you are on Mac, I'm curious what kind of development you do? It seems hard these days to avoid stuff like `composer update` or `npm update` or to compile SASS or to bundle JS and as soon as you do any of those things, with Docker you start to get a syncing feeling. Sorry, shouldn't try to be funny this late in the day... :)
Oh also, when I run Docker for Mac I often get random 100% CPU usage for no reason at all, with no containers running, causing all my fans to spin up to full. I also periodically find I've run out of SSD space because docker has used it all up with qcows or something. And anytime I had to make a config change in one of my images I had to jump through flaming hoops to get it to take effect in the container. Not because of Docker per-se but because I wanted to write PHP or Javascript, not learn how to sysadmin Docker.
I would have thought Docker runs nice on all the big OSes, Linux, Mac and Windows. Isn't everyone doing everything in Docker these days? I would have thought there is an uproar if it is wonky on some platform.
When I do a config change in a Docker image, I just execute "docker build" and thats it. I have never experienced it not "taking effect in the container". Maybe because I don't keep containers around? The run.sh does "docker run --rm -it" so the container is gone when I stop the application.
In theory stuff that is solvable, but it's not like on Linux (which is, after all, just the cgroups + chroot dance). The Mac stuff is painful and slow. And the ways to make some of it fast involve really bad tradeoffs at the other end.
I'm convinced that Docker setups on Mac have cut down on dev hours world wide by at least 10% from this kind of stuff, even with all the wins you get (at least in theory). It's still a bit shocking to me that we haven't figured out a better way to deal with this problem for web development given so many people are on Macs
I couldn't live without Docker anymore. It is just so convenient and logical.
Juggling a mix of environments on my host seems insane to me.
And without Docker, how do you deal with security? How do you work on a project without isolation? Do you trust every project and every piece of code so much that you let it run on your host?
In every project directory, I have a "run.sh" script that starts a docker container with the right stack and mounts the project dir into the container.
Been doing this for years now. It feels completely seamless, fast and logical to me. What am I missing?