3.1 Introduction to Docker
3.1.1 What is Docker?
- Platform for developing, shipping and running applications.
- Infrastructure as application / code.
- First version: 2013.
- Company: originally dotCloud (2010), later named Docker.
- Established Open Container Initiative.
As a software:
- Docker Community Edition.
- Docker Enterprise Edition.
There is an increasing number of alternative container technologies and providers. Many of them are actually based on software components originally from the Docker stack and they normally try to address some specific use cases or weakpoints. As a example, Singularity, that we introduce later in this couse, is focused in HPC environments. Another case, Podman, keeps a high functional compatibility with Docker but with a different focus on technology and permissions.
3.1.2 Docker components
- Read-only templates.
- Containers are run from them.
- Images are not run.
- Images have several layers.
3.1.3 Images versus containers
- Image: A set of layers, read-only templates, inert.
- An instance of an image is called a container.
When you start an image, you have a running container of this image. You can have many running containers of the same image.
“The image is the recipe, the container is the cake; you can make as many cakes as you like with a given recipe.”