...
Adapting codes to IMAS based Docker (Tomek) - 22.09
Markdown |
---|
## 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](https://docs.docker.com/get-docker/)
- To work with a container you need an image to start from
- Images can be found in public or private repositories:
- Base operating systems
e.g. [Ubuntu](https://hub.docker.com/_/ubuntu) or
[CentOS](https://hub.docker.com/_/centos)
- Ready-to-start interpreters
e.g. [Python](https://hub.docker.com/_/python) or
[PHP](https://hub.docker.com/_/php)
- Database management systems
e.g. [MySQL](https://hub.docker.com/_/mysql) or
[PostgreSQL](https://hub.docker.com/_/postgres)
- 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 |