1. Introduction to Docker - Mark-van-B/IT-Landscape-UCLL- GitHub Wiki
What is Docker?
"It works on my computer..."
Every computer, of every format, is unique. Therefore, the performance of software is also unique, and there's always a small chance that rare problems will appear for any given user.
Virtualisation
The solution? Virtualisation. If software works on my system, in my own digital environment, then it will work everywhere as long as I wrap it up into the digital context of my machine, and distribute the bundle instead.
The result is a virtual machine, a computer within your computer, with its own Operating System and hardware drivers etc, which ensures that the software will perform as intended.
Optimalisation
The downside of such virtual machines is that they require a lot of computing power, given that an entire virtual PC is being emulated, within a PC that itself also needs to keep running.
Because of this, a lighter and faster solution has been developed: *"Containers"", in which only the essential details are being virtualised. This results in a middle ground where much less needs to be emulated.
- Step 1: Create an image of the software you want to distribute.
- Step 2: Create a container for the Image to run in.
These containers are somewhat isolated from the user's computer as a whole, but they can easily communicate with other containers, allowing for many people working on the same project, all through their own containerised images of the software.
Distribution
This brings us to Docker: an onlie platform for the distribution of these Images. Everyone with the proper credentials can download and install their own container with your Image, and get to work with software which will be identical to every other user.