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

  1. Introduction / Demystification of Docker

    1. What is a container and an image?

    2. Differences with virtualization

    3. The advantages of a container

    4. Setup of the environment

  2. First Use

    1. Docker Hub

    2. Hello world !

    3. List / delete containers

    4. Detached container

    5. Run a command in a container

  3. Images

    1. Creating our own image: Dockerfile

      1. History

      2. Tag

      3. Show activity of active containers

    2. Cleaning up

    3. Images and layers

    4. Layer cache

      1. Container life cycle

      2. Context, environment variables and arguments

    5. .dockerignore

    6. Multi-stage build

    7. Private registers

  4. Data Management

    1. Volatile containers and volumes

    2. Type of volumes

    3. Drivers

  5. Orchestration

    1. docker-compose

    2. Installation

    3. Vocabulary

    4. Equivalences between docker and docker-compose commands

  6. Network

    1. DNS Docker

    2. Network

    3. Network type

    4. Port publishing

They recommend our trainings