When users interact with software, the hidden complexities at work behind the scenes are mind-boggling. There’s the UI, frameworks, database layer, libraries and code that all mesh together to create a coherent user experience.
It’s astonishing, but deploying and testing software these days is a complex business. It’s never as simple as compiling a bunch of code and running it; all the constituent elements must be correctly configured.
Imagine a huge, digital jigsaw puzzle where every piece must be placed in exactly the right place in order for the whole thing to work properly. If one piece is lost or misplaced, the entire app falls apart.
That’s why docker containers exist and, if you’re in the developer community, you’ll be aware of how important they are as a developer tool.
Here’s why…
What is a docker container?
Containers enable software developers to package up the entire contents of their app (all those libraries, the code and other dependencies) and ship it as one package.
The app can then be deployed on any Linux machine without any other installation taking place. Because everything required to run the software in question is contained within the docker, developers can rest assured that it will always run, no matter its eventual destination.
But that’s the same as a virtual machine, no?
We see your line of thought, but – no. Unlike virtual machines (VMs), docker containers don’t require a completely separate installation of an operating system. They’ll run on any Linux box, directly on the OS already installed. This makes them far easier to deploy than apps requiring virtual machines to run.
Docker containers are also far smaller than virtual machine images which makes them much more portable, less cumbersome and consequently easier to distribute. Most developers will also argue – quite rightly – that apps deployed via docker containers receive a nice performance boost as a result.
Who uses dockers?
Docker containers are primarily used by developers and system administrators. For developers, they are a dream, because it means that all focus can be placed on writing the code, rather than worrying about the environment within which it will eventually be deployed. There are also a huge number of programs designed to run on docker containers that they can use for their own projects, giving them a sizeable head start.
For system admins, dockers’ smaller footprint and lower overhead compared to virtual machines means the number of systems required for application deployment can often be reduced. Their portability and ease of installation makes the process far less laborious and enables administrators to regain lost time installing individual components and VMs.
How quick is a docker container, exactly?
When a virtual machine boots, it usually has to retrieve between 10-20GB of operating system data from storage. That can be a painfully slow process by today’s standards, but what about docker containers? Well, because they don’t have to pull anything other than themselves from the hard disk, they boot within just a fraction of a second. So, they’re quick. Very quick.
The big boys rely on docker containers
If you’ve ever been blown away by the speed of Google (it’s hard not to every time you conduct a search), brilliant coding isn’t the only secret sauce at play. Google is probably the most prolific user of docker containers and the numbers are truly staggering.
It is thought that Google launches around 7,000 containers every second, amounting to 2 billion used every week.
That’ll give you some idea as to why docker containers are of such interest to developers the world over.
Conclusion
Docker containers are smaller, more agile, faster and can potentially save on both labour and infrastructure overheads. The fact that the world’s largest search engine company relies on them every second of every day is testament to a developer tool which simply can’t be overlooked and that will surely one day replace VMs for good.