1.1. Introduction
Docker is a tool which allows to start containers i.e. lightweight, isolated environments (OS, libraries, configurations)
- You can install Docker for Mac, Windows or Linux: documentation
To work with a container you need an image to start from
Images can be found in public or private repositories:
A container executes one or more processes in its isolated environment
The process might be a daemon e.g. Apache HTTP Server or it can be an interactive terminal
Dockerization features:
Quick prototyping and testing
- For example, you can easily spawn multiple versions of PostgreSQL and test your SQL queries against them
Better dissemination
- The product owner can share a Docker image and anyone interested can use it straight away
Enhanced security
- A container is isolated and runs a limited number of processes
- Even if it gets hacked, the rest of the system remains unharmed
Easier maintenance
- The images are usually built in an automatic way via CI/CD pipelines or regularly scheduled jobs
- No matter how complex the environment is, once the image recipe is created all interested users can instantiate containers at will