EncartaLabs

Docker

Docker containers are similar in some ways to spinning up Virtual Machines for each of your services, however, the Docker engine seeks to avoid the overheads of running fully virtualised operating systems for each instance. Instead, Docker includes the application and its dependencies in discrete Containers, on the base Operating System's kernel, making better use of system RAM and other resources. In terms of how it fits in with DevOps, Docker is used at the Continuous Deployment stage. This approach is designed to make software development, testing, configuration management and application deployment easy, whether your code runs locally or in the cloud.

The Docker - Essentials training course will give you hands-on experience creating lightweight, easily-deployable containers for your software development projects, guided by a DevOps expert.

Docker - Advanced training course explores Docker Compose, Docker Machine, and Docker Swarm in detail. This workshop aims to take your existing skills with Docker to the next level of scaling your DevOps architecture securely, and with high performance.

By attending Docker - Essentials workshop, delegates will learn:

  • What Docker is and when to use it
  • Containers and Microservice Architecture
  • Obtaining, installing and configuring Docker
  • Docker Architecture
  • Creating Docker Images
  • Starting and Stopping Containers
  • Continuous Integration for Docker

By attending Docker - Advanced workshop, delegates will learn:

  • Docker Compose - defining and running multi-container Docker applications
  • Virtual Hosts with Docker Machine
  • Docker Engine in Swarm Mode

    Docker - Essentials

    • Experience of using Windows or Linux with the Command Line

    Docker - Advanced

    • Attend our Docker Esssentials training course or have equivalent experience.

  • Software Developers and Systems Administrators

COURSE AGENDA

Docker - Essentials
(Duration : 3 Days)

1

Introduction

  • What is Docker?
  • Alternatives to Docker
  • The evolution of containers
  • How containers work
  • Containers and Microservices Architecture
2

Getting started

  • Installing Docker
  • Configuring Docker
  • Running your first container
3

Docker Components

  • Docker Client
  • Docker Daemon
4

Docker Images

  • What is an image
  • What does an image contain
  • Repositories
  • Versioning and Tags
  • Docker images
5

Docker Hub

  • What is the Docker Hub
  • Creating an account
6

Docker run

  • Overview
  • Terminal Access
  • Detached mode
7

Processes

  • Process Ids
  • Within a container
  • PID
  • Docker ps
8

Logging

  • Docker logs
  • follow
9

Port mapping

  • Overview
  • Simple port mapping
10

Building Images with Container Commits

  • Read Only and Write layers, Copy on write
  • Docker commit
11

Dockerfile

  • Introduction
  • Instructions and images
  • FROM
  • RUN
  • Docker build
  • obuild contexts
  • CMD
  • EXEC
  • ENTRYPOINT
12

Starting and Stopping Containers

  • Docker ps
  • Docker start
  • Docker stop
13

Getting terminal access

  • Docker exec
14

Removing Images

  • Docker rmi
15

Docker Hub Repositories

  • Docker tag
  • Docker push
  • Docker pull
16

Volumes

  • Docker run /v
  • VOLUME
  • Do’s and Don’ts
17

Port Mapping

  • Docker run -P
  • Docker run -p
  • EXPOSE
18

Linking

  • Introduction
  • Docker --link
19

Continuous Integration

  • Building Images
  • Docker Hub Auto Build
20

Debugging Containers

  • Using a volume for logging
  • Docker inspect
21

Docker Daemon

  • Starting and Stopping the Daemon
  • Configuration
  • Logging Level
Docker - Advanced
(Duration : 3 Days)

1

Docker Compose

  • What is Docker Compose and when should I use it
  • Swarm Mode vs non Swarm Mode
2

Installation

  • Installing docker-compose
  • Command line completion
3

Introduction to docker-compose.yml

  • Validation using docker-compose config
4

Running a multi-service application

  • Starting containers (up)
  • Stopping Container (down)
  • Listing Processes
  • Service names vs Container Names
5

Other Service Lifecycle commands

  • stop
  • pause
  • unpause
  • restart
  • kill
6

Accessing details of a service

  • port
  • top
7

More useful Docker Compose commands

  • exec
  • images
  • pull
  • push
  • rm
  • run
8

Logging

  • using docker-compose logs
9

Other commands

  • bundle
  • events
10

Environment Variables

  • System environment variables
  • .env file
11

Building services using docker-compose.yml

  • File format versions
  • Building Images (build)
  • Specifying Images
  • Healthchecks and Dependencies
  • Network Configuration and Ports
  • Commands and Entrypoints
  • Environment Variables
  • Isolation Technologies
  • Labels
  • Service specific logging
  • Secrets
  • Controlling Shutdown Signals
  • Volumes
  • Restart policies
12

Docker Machine

  • What is Docker Machine
  • Overview of Docker Machine
13

Installation

  • Configuring a terminal
  • Choosing a base operating system
  • Install a docker machine on VirtualBox
  • AWS Docker Machine
  • Digital Ocean docker machine
14

Querying machine information

  • ip
  • inspect
  • url
  • status
15

Starting and Stopping a docker machine

  • start
  • stop
  • restart
  • kill
16

Accessing a docker machine

  • ssh
  • scp
17

Upgrading a docker machine

18

Docker Swarm

19

What is Docker Swarm

  • Cluster management
  • Decentralized design
  • Declarative service model
  • Scaling
  • Desired state reconciliation
  • Multi-host networking
  • Service discovery
  • Load balancing
  • Secure by default
  • Rolling updates
20

Key Concepts

  • Swarm Mode
  • Manager Node
  • Worker Nodes
  • Global Services
  • Worker Services
  • Tasks
  • Ingress Load Balancing
21

Single node swarm

22

Monitoring a swarm

  • Using portainer.io
  • Other options
23

Multi node swarm

24

Modifying a swarm

  • Adding nodes
  • Removing nodes
25

Deploying services

  • Deploying services
  • Inspecting services
  • Scaling services
  • Removing services
  • Apply rolling updates
26

Removing Nodes

  • Draining a node
27

Routing Mesh

28

Managing Secrets

29

Autolocking

30

Overlay Networking

31

Raft

32

Docker Compose in Swarm Mode

33

docker-compose.yml

  • deploy
  • Creating a registry
  • stack deploy

Encarta Labs Advantage

  • One Stop Corporate Training Solution Providers for over 4,000 Modules on a variety of subjects
  • All courses are delivered by Industry Veterans
  • Get jumpstarted from newbie to production ready in a matter of few days
  • Trained more than 50,000 Corporate executives across the Globe
  • All our trainings are conducted in workshop mode with more focus on hands-on sessions

View our other course offerings by visiting http://encartalabs.com/course-catalogue-all.php

Contact us for delivering this course as a public/open-house workshop/online training for a group of 10+ candidates.

Top