Docker
Good to know
Training goal
This training will teach the participants the basic mechanisms of Docker.
The skills acquired at the end of the training will be:
- Being able to think in terms of services / backing services / 12 factors
- Creating optimized Docker images
- Dockerizing an application
- Deploying an application
- Understanding what a container is (UNIX philosophy)
Detailed contents
The content is updated regularly to always cover the latest version of Docker. The pedagogical path is presented in the form of practical work that takes place throughout the training. The focus is on best practices.
Course materials provided
The trainer will distribute the training materials in electronic format at the end of the training.
In addition, the work done during these 3 days will result in the creation of a step-by-step versioned web application. Each participant is invited to keep on their machine the code of the training project, which they will have written themselves with the help of the trainer, because this code can be used as a technical base for future projects.
Prerequisites
In order to take full advantage of the training, participants must have previous professional experience in the following areas:
- Docker compatible environment (Linux / Windows 10+ / macOS 10.11+, or virtual machine)
- Comfortable with a UNIX environment (command line)
- Specific knowledge: basic systems and networks desired but not required
Participants should have a computer with a LAMP environment, including preferably the following elements :
- An internet connection allowing the installation of PHP extensions and packages from packagist and working with ease (if the training is held outside our premises),
- An IDE they master (PHPStorm, SublimeText, VSCode, ...),
- A UNIX shell,
- A currently supported version of PHP (https://www.php.net/supported-versions.php),
- Git installed (useful for composer dependencies),
- One MySql/MariaDB server per person,
- Administrator rights on the machine,
It is recommended for the participants to use a text editor they are comfortable with, so that they can focus on the training. It is not necessary to install Docker, this part will be covered during the training.
If the training is held in the Client's premises, we require for the Client to provide a separate room for the training to take place, big enough to accommodate all participants and the trainer, for the whole duration of the training. A video projector or wide screen TV must be provided so that the participants can see the trainer's laptop computer screen. A paperboard or whiteboard, and Internet access would be appreciated.
Training course
Introduction / Demystification of Docker
What is a container and an image?
Differences with virtualization
The advantages of a container
Setup of the environment
First Use
Docker Hub
Hello world !
List / delete containers
Detached container
Run a command in a container
Images
Creating our own image: Dockerfile
History
Tag
Show activity of active containers
Cleaning up
Images and layers
Layer cache
Container life cycle
Context, environment variables and arguments
.dockerignore
Multi-stage build
Private registers
Data Management
Volatile containers and volumes
Type of volumes
Drivers
Orchestration
docker-compose
Installation
Vocabulary
Equivalences between docker and docker-compose commands
Network
DNS Docker
Network
Network type
Port publishing