Around 3 years ago most of my software development and testing work was being done inside VirtualBox VM’s, by just running and having packaged versions of specific Linux OS’s which I needed for multiple projects or environments. And really I felt that this is the MOST AWESOME way of managing a lot of projects with different environments on a space Laptop.
After getting know about Vagrant my development environment became just a joy to work with, and I really loved the way how it was easy to work with Vagrant CLI, so that I’ve been able to build my development environment quickly using basic Vagrantfile like in a picture blow.
This all sounds great, and feels like that, but the reality is that with this principle my laptops CPU always have been running crazy, not less than 40%, which is starting to cooke expensive hardware 😒
Generally I’ve been using Docker for a while, and even I’ve been running Docker inside VirtualBox VM’s, and the time that I realized that I can make same environment more lightweight with Docker I decided to completely switch to it.
But here is the issue that I’ve faced from the beginning.
I have few custom Docker images for specific projects that I’m running for development and testing. Where to keep them for not doing same amount of work for every development environment that I’m switching on?
It turns out there is a thing called docker-compse which can build out entire environment based on given configuration file. You only need to use some Docker Registry (for example TreeScale.com) to keep and then just pull out images from there.
Here is the list of public images that I’m using for my daily software developments.
As you can see the most benefit from this Docker environment I’m getting from having packaged local databases, so that I don’t need to install a lot of junk database files, and then think how to uninstall or remove them. It is packaged Docker image/container, you need just remove image, that’s it!
Having Docker environment just gave me huge work efficiency, mostly because Docker containers uptime is just a second, and if you need test something just spin a container run and kill container, it is almost the same as running CLI commands on a local environment.
Another huge benefit out of this is that my MAC started to keep more battery charge, mostly because I’m not overloading it’s resources by running 3–4 VM’s at the same time, for Docker it is just running single VM in background and spinning containers inside that VM, which is completely seamless.
Start using TreeScale private registry now for free and build your efficient development environment with it! 👏