Duration: 2 days – 14 hrs.
Overview
Docker is one of the popular and container-based tools used to create, deploy and run applications on cloud and on premises. Docker is a key component for the strategic investment in any company. An organization can take advantage of the agility and portability benefits that Docker containers provide across the application lifecycle, organizations planning to optimize these applications for their digital and hybrid cloud initiatives require a broader containerization strategy.
Docker is one type of open-source solution for the management of isolated containers. Docker always helps to put software code in containers. For this reason, it can be used in other systems without the necessity to create resource-intensive virtual machines. The software can be managed either via a hybrid Cloud or with the help of existing physical hardware resources. Docker Containers are virtualized abstract objects that interconnect code into dependencies (e.g., frameworks, config files, libraries, etc.). They are used for the building and deployment of lightweight applications that can be installed in a package on one machine (server or powerful computer). The containers finally boost performance and save memory, consuming far less resources than traditional virtual machines (also called hypervisors).
Objectives
- Understand the foundations of containerization on a
- single Docker node
- Create an image using Docker file best practices
- Use volumes in the application development process
- Apply concepts of the Docker networking model
- Understand the goal of services as a method of scaling
- containers
- Utilize two different orchestrators (Swarm and
- Kubernetes) to deploy a single application across
- multiple machines
- Create a secret and understand its accessibility
Audience
- Developers
- DevOps engineers
- System administrators
Pre- requisites
- How the bash works (at least how to handle files and folders)
- Basics of networking on Linux/Ubuntu
- The Unix / Linux philosophy
- A good understanding of Linux Kernel’s job (resources allocation, CPU/memory/network management, storage organization, programs scheduling and programs communication)
- A good understanding of Networking (socket, routing, IP protocol, bridges, virtual network, iptables, ports, server/client architecture etc.)
- Experience working with Virtual Machine using VMware/VirtualBox
Course Content
Module 1: Course Overview
Module 1.1: Introduction to the course
Module 2: Understanding Docker
Module 2.1: Module Introduction
Module 2 .2: What is Virtualization
Module 2.3: What are Containers
Module 2.4: Containerization and virtualization differences
Module 2.5: Case study: 100 developer environments
Module 2.6: Difference between win and Linux containers
Module 2.7: Docker ecosystem and components
Module 3: Installing Docker
1: Module Introduction
3.2: Installing Docker on Centos 7
3.3: Install Docker on Windows 2016 server
Module 4: Containers on Ubuntu Docker host
4.1: Module Introduction
4.2: Deploy, Login, exit container
4.3: List, Start, Stop, restart containers
4.4 where containers are stored
4.5: working with container hostnames
4.6 working on multiple containers
4.7 Container stats and inspect
4.8 Container networking
4.9 Deleting containers
Module 5: Containers on Win-2016 server Docker host
5.1: Module Introduction
5.2 Install Docker on win 2016 server
5.3: Win container Deploy, Login, exit container
5.4: List, Start, Stop, restart containers
5.5 where containers are stored
5.6: working with container hostnames
5.7 working on multiple containers
5.8 Container inspect
5.9: Deleting containers
Module 6: Docker Images
6.1: Module Introduction
6.2: Introduction to Docker Images
6.3: Docker hub – create your account
6.4: Explore and pull images from docker hub
6.5: Docker commit Build and Push Your own image
6.6: Launch container using your own image
6.7: Build Your own image using dockerFile
6.8: Integrate you dockerhub account with GitHub account to build image
Module 7: Docker Networking
7.1 Module Introduction
7.2 Linux Docker host default Networking
7.3 Linux container networking
7.4 Docker host and container port mapping
7.5 List, create, inspect and remove new networks
7.6 Launch container in desired network
7.7 Attach a container two networks
Module 8: Docker Volumes
8.1: Module introduction
8.2: Introduction to Docker volumes
8.3: Launch a container with volume attached
8.4: Recovering volume
8.5: Module Summary
Module 9: Linked Containers
Module 9.1 Module introduction
Module 9.3 Creating webapp container
Module 9.4 creating MySQL dB container
Module 9.5 Connect webapp with MySQL DB
Module 10 Docker Compose
Module 10.1: Module introduction
Module 10.3: Creating docker compose file (WordPress and DB)
Module 10.4: Docker compose operations