Docker and Containerisation - In a nutshell
I use Docker for the project I'm working on and I find it quite beautiful that once its set up all I really have to do is click a button to get it running. But what actually is Docker? And what is Containerisation? Here are the basics in a nutshell:
Containerisation is a way of packaging an application together with everything it needs. This includes things like the code, dependencies (e.g. libraries, packages) etc. All of this is bundled into one isolated unit called a container. This allows it to be reliably run on multiple machines, minimising version mismatches, missing dependencies etc.
Docker is the the most widely used platform for creating and running containers. It allows you to define containers, build them, run them and manage multiple services. Before containers, developers mainly used Local Machines (which had the problem of having possibly having slightly different setups) or Virtual Machines (which run a full operating system using more memory and booting slower). Containers however are able to share the host OS kernel, are lightweight and start in seconds!