Docker for the Macintosh has recently emerged from beta and I’m ecstatic.
Docker implements a way of walling off a piece of software from the underlying operating system using a tech they call “containers”.
This is an absolute godsend for deploying services. One of the problems in system administration is the cost and complexity of spinning up a new service and then removing it from a computer once it is no longer required.
Software when it is installed and run can spray pieces of itself all over the computer’s file system and getting it out again is difficult.
Previously we have used virtual machines to isolate this problem. That has it’s own costs, a virtual machine means you are running (at least) two complete operating systems on the hardware. It also has a cost in memory and hard disk space.
Containers lower the cost considerably. They have all the advantages of virtual machines but share the operating system kernel with each other and the underlying OS. This makes them smaller and consuming considerably less resources than virtual machines. This also makes them quicker to download and deploy.