Overview of Docker
This course is intended for budding developers, QA and ops professionals alike who are developing applications, writing tests or managing deployment and intend to progress their knowledge with the next generation container technologies to expedite the workflow.
This bootcamp introduces participants to Docker and its ecosystem, helps them get started with Docker to build, package and run their applications inside containers.
Duration
2 Days
Prerequisite for Docker
- Linux/Unix Systems Fundaments
- Understanding of Command Line Interface
- Basic knowledge of editors on Linux (any one of vi/nano/emacs)
- Understanding at least one scripting/programming language
Course Outline for Docker
Introduction to Containers and Docker
- Containers vs Hypervisors
- Evolution of Containers
- Docker Story
- Docker Architecture
- Under the hood
- Namespaces
- Control Groups
- Union File System
- Libcontainer
Setting up Learning Environment
- Installing Prerequisites
- Virtualbox
- GIT For Windows
- Installing Boot2docker
- Installing Kinematic
- Installing Docker Machine
- Creating Docker Hub Account
- Validating The Setup
Getting Familiar with Docker
- Using docker shell
- Connecting to the docker daemon
- Docker Commands
- Running Ephemeral Containers
- RunningInteractive Containers
- Running Persistent Containers
Working with Containers
- Launching an Application Container with an existing image
- Container Operations
- Run
- Inspect
- Check Logs
- Stop
- Delete
- Attach
- Network Port Mapping
Working with Images
- Docker Image Basics
- Working with Docker Hub Registry
- Image Operations
- List
- Search
- Pull
- Customising Image Manually
- Committing Image to Docker Hub Registry
- Building Image Automatically with Dockerfile
- Private Docker Registry Overview
Dockerfile Primer
- Dockerfile Basics
- Dockerfile Anatomy
- Dockerfile Instructions
- FROM
- MAINTAINER
- RUN
- LABEL
- ENV
- ADD
- COPY
- EXPOSE
- VOLUME
- USER
- WORKDIR
- ONBUILD
- CMD
- ENTRYPOINT
Connecting Containers
- Connecting Containers with Network Port Mappings
- Linking System for Inter Container Communication
- Discovery with environment variables
- Advanced Docker Networking
Container Data Management
- Managing Data for Containers
- Creating Data Volumes
- Using Data Volume Container
Launching Multi Container Apps with Compose
- Docker Compose Overview
- Running Multi Container Apps
- Using Compose
Creating Multi-Node Cluster with Swarm
- Swarm Overview
- Clustering Nodes with Swarm
- Discovery Services
- Using Swarm to cluster docker hosts
Working with Docker Registry
- Docker Registry Types
- Trusted Registry vs Open Source Registry
- Configuring Security and TLS for Registry
- Working with Local Registries
- Docker Eco-System