# Containers and orchestration

## Introduction

Containers, Docker and Kubernetes are "cool" terms that are being spoken of by everyone involved with software in some way. Let's dive into each of these pieces of technology at enough depth to understand what the whole deal is about!

In this module we talk about the ins and outs of containers: the internals and usage of containers; how they are implemented, how to containerize your application and finally, how to deploy containerized applications on a large scale without losing your sleep. We'll also get our hands dirty by trying out a few lab exercises.

### Prerequisites
- Basic knowledge of linux will be helpful understanding the internals of containers
- Basic knowledge of shell commands (will come handy when we're containerizing applications)
- Knowledge of running a basic web application. You can go through our [Python And Web module](https://linkedin.github.io/school-of-sre/level101/python_web/intro/) to gain familiarity with this.


## What to expect from this course

This module is divided into 3 sub-modules. In the first sub module, we will cover the internals of  containerization and why they’re used for.

The second sub-module introduces Docker, a popular container engine and contains lab exercises on dockerizing a basic webapp.

The last module talks about container orchestration with Kubernetes and some lab exercises to show how it makes the lives of SREs easy.

## What is not covered under this course

We will not cover advanced docker and kubernetes concepts. However, we will be leading you to links and references from where you can pick them up as per your interest.

## Course Contents

The following topics has been covered in this course:

- [Introduction to containers](https://linkedin.github.io/school-of-sre/level102/containerization_and_orchestration/intro_to_containers/)
    - [What are containers](https://linkedin.github.io/school-of-sre/level102/containerization_and_orchestration/intro_to_containers/#what-are-containers)
    - [Why containers](https://linkedin.github.io/school-of-sre/level102/containerization_and_orchestration/intro_to_containers/#why-containers)
    - [Difference between virtual machines and containers](https://linkedin.github.io/school-of-sre/level102/containerization_and_orchestration/intro_to_containers/#difference-between-virtual-machines-and-containers)
    - [How are containers implemented](https://linkedin.github.io/school-of-sre/level102/containerization_and_orchestration/intro_to_containers/#how-are-containers-implemented)
    - [Namespaces](https://linkedin.github.io/school-of-sre/level102/containerization_and_orchestration/intro_to_containers/#namespaces)
    - [Cgroups](https://linkedin.github.io/school-of-sre/level102/containerization_and_orchestration/intro_to_containers/#cgroups)
    - [Container engines](https://linkedin.github.io/school-of-sre/level102/containerization_and_orchestration/intro_to_containers/#container-engine)
- [Containerization with Docker](https://linkedin.github.io/school-of-sre/level102/containerization_and_orchestration/containerization_with_docker/)
    - [Introduction](https://linkedin.github.io/school-of-sre/level102/containerization_and_orchestration/containerization_with_docker/#introduction)
    - [Basic docker terminology](https://linkedin.github.io/school-of-sre/level102/containerization_and_orchestration/containerization_with_docker/#docker-terminology)
    - [Components of Docker engine](https://linkedin.github.io/school-of-sre/level102/containerization_and_orchestration/containerization_with_docker/#components-of-docker-engine)
    - [Hands-on](https://linkedin.github.io/school-of-sre/level102/containerization_and_orchestration/containerization_with_docker/#lab)
    - [Introduction to Advanced Docker](https://linkedin.github.io/school-of-sre/level102/containerization_and_orchestration/containerization_with_docker/#advanced-features-of-docker)
- [Container orchestration with Kubernetes](https://linkedin.github.io/school-of-sre/level102/containerization_and_orchestration/orchestration_with_kubernetes/)
    - [Introduction](https://linkedin.github.io/school-of-sre/level102/containerization_and_orchestration/orchestration_with_kubernetes/#introduction)
    - [Motivation to use Kubernetes](https://linkedin.github.io/school-of-sre/level102/containerization_and_orchestration/orchestration_with_kubernetes/#motivation-to-use-kubernetes)
    - [Kubernetes Architecture](https://linkedin.github.io/school-of-sre/level102/containerization_and_orchestration/orchestration_with_kubernetes/#architecture-of-kubernetes)
    - [Hands-on](https://linkedin.github.io/school-of-sre/level102/containerization_and_orchestration/orchestration_with_kubernetes/#lab)
    - [Introduction to Advanced Kubernetes concepts](https://linkedin.github.io/school-of-sre/level102/containerization_and_orchestration/orchestration_with_kubernetes/#advanced-topics)
- [Conclusion](https://linkedin.github.io/school-of-sre/level102/containerization_and_orchestration/conclusion/)