Current training baseline:
-
Base image examples use
alpine:3.20 -
Docker Compose commands use the V2 CLI syntax:
docker compose -
Compose manifest examples may use either
compose.yamlordocker-compose.yml
The training covers the following containerization topics:
-
Introduction to Containerization We compare containerization to virtualization and discuss the advantages of containerization compared to virtualization.
-
Containerization Basics We discuss Linux technologies such as namespaces, which are used by containerization, and that a container is nothing but an isolated process on the host.
-
Creating Images We discuss what container images are, how they are set up, and how to build container images efficiently.
-
Container Volumes We discuss how to store persistent data of containers in volumes, how the volumes work, and how to use them efficiently.
-
Docker System Commands We discuss the system commands Docker provides, for instance for housekeeping.
-
Container Networking We discuss the container networking model, the different types of networks, and how to use container networks properly.
-
Docker Compose We discuss composing multiple services with Docker Compose.
The objective of this training is that trainees understand containerization with Docker and can use containerization in their daily work.
We provide the following resource for this training which can be downloaded from this repositories releases or viewed as github pages.
The release archive contains the following resources.
-
presentation
A asciidoc/revealjs based HTML presentation -
exercises
Asciidoc based HTML with the exercises -
instructor
Asciidoc based HTML with the instructor demos -
resources
Additional resources for the training such as example applications
The training environment will be provided to by your trainer, and is used for hands on with Docker. You will connect to the environment via ssh, whereby the ssh public key will be provided to you, and is only valid for the provisioned environment during the training.
ssh ubuntu@<PROVIDED_AWS_URI> -i <PROVIDED_PUBLIC_KEY>scp -r <LOCAL_DIR_PATH> ubuntu@<PROVIDED_AWS_URI>:<REMOTE_PATH> -i <PROVIDED_PUBLIC_KEY>scp -r ubuntu@<PROVIDED_AWS_URI>:<REMOTE_PATH> <LOCAL_DIR_PATH> -i <PROVIDED_PUBLIC_KEY>This section is for trainers only, and documents how to prepare for a training.
The presentation and exercises are asciidoc resources whereby the presentation can be rendered to PDF via a http-server and a chromium browser.
The exercises can be printed via a browser as any other website.
|
Note
|
All following commands must be either executed in the directory /presentation or /exercises.
|
This applies only for the presentation.
-
Start webserver
node_modules/http-server/bin/http-serverdocker run --rm \
-v $(pwd):/home/node \
-p 8080:8080 \
-w /home/node node:18.7.0 \
node_modules/http-server/bin/http-server-
Open in Chrome/Chromium browser
http://localhost:8080/presentation?print-pdforhttp://localhost:8080/exercises?print-pdf -
Open Chrome browser print dialog and save as pdf.
We use AWS to provision a training environment, which is based on this git repository which provides a container image which uses Terraform to provision the training environment. These Github Pages provide the documentation how our provisioning in AWS works.
You need Docker, an active AWS account, and a set-up AWS CLI on the host you want to provision the environment from.
|
Note
|
All of the following commands must be executed in the /aws directory.
|
docker run --rm -it \
-v $(echo ~)/.aws:/root/.aws:ro \
-v $(pwd):/opt/train/workdir \
-v $(pwd)/bootstrap.sh:/opt/train/terraform/files/bootstrap/bootstrap.sh \
gepardec/train:latest applydocker run --rm -it \
-v $(echo ~)/.aws:/root/.aws:ro \
-v $(pwd):/opt/train/workdir \
-v $(pwd)/bootstrap.sh:/opt/train/terraform/files/bootstrap/bootstrap.sh \
gepardec/train:latest destroy