Docker

Objectives

  • Understand what problems Docker solves.
  • Understand when Docker might not be the appropriate solution.
  • Be able to create basic Docker images.
  • Be able to run Docker containers

Audience

  • Developers
  • Tech Leaders
  • QA engineers
  • DevOps engineers
  • Automation engineers

Course Format

  • Typically 8 academic hours. One whole day 9:00-17:00 or two half-days.
  • The course includes approximately 40% hands-on lab work.

Prerequisites

  • Understanding of Linux
  • Basic Administrative knowledge of Linux
  • At least 1 year of experience in the software development world.
  • Bring a computer where you have rights to install new software.

Syllabus

Introduction to Docker

  • Why use Docker?
  • What is Docker?
  • How can Docker bridge the gap between Developers, QA, and Operations?
  • Installing Docker on Windows, macOS, Linux
  • Public Docker Images
  • Docker Registry / Docker HUB
  • Difference between a Docker Image and a Docker Container
  • Docker Daemon (Server), Client

Running the first Docker container

  • Run a Docker container - Hello World!
  • Download a docker image (pull)
  • Docker on the command line
  • List docker containers
  • Cleaning up the dead containers.
  • Remove docker container
  • Name a docker container
  • List docker images
  • Remove docker images

Create a Docker image manually

  • Use the Ubuntu Docker image
  • Use the CentOS Docker image
  • Install packages in the container
  • Create files on the container
  • Stop container
  • Restart container
  • Copy file from container
  • Create image from container
  • Distribute command line script in an image

Create a Docker image using Dockerfile

  • Create a simple image
  • FROM
  • RUN
  • CMD
  • ENTRYPOINT
  • COPY
  • Distributing a command-line application.
  • Accessing the disk on the host system.
  • WORKDIR
  • ENV
  • Layers
  • Caching
  • Tagging an image

Docker compose

  • Run several Docker images at once
  • Rebuild docker image when running with docker-compose
  • Run multi-host applications using docker-compose.
  • Create an image in the repository (from GitHub)
  • Networking with docker-compose

Dockerfile commands

  • ARG
  • ADD
  • CMD
  • COPY
  • ENTRYPOINT
  • ENV
  • EXPOSE
  • FROM
  • RUN
  • WORKDIR

The Python track

  • Distribute a web application: Flask
  • Distribute a web application: Flask + Nginx
  • Distribute a web application: Flask + Nginx + MongoDB
  • Mapping ports of the Docker image and the local system.
  • EXPOSE

Use cases for Docker

  • Distributing a pre-configured system.
  • Distributing a database system.
  • Filesystems
  • Volumes

Let's talk

If you would like to bring this course to your organization, let's talk about it! You can reach me via email at gabor@szabgab.com or you can go ahead and schedule a chat:

Schedule a call