BoxBoat Blog

Service updates, customer stories, and tips and tricks for effective DevOps

Kubernetes Training Fundamentals - Module 1 - Intro to Containers and Docker

by Mike 'MJ' Johnson | Thursday, Dec 13, 2018 | Docker Kubernetes

Kubernetes Training Fundamentals - Module 1 - Intro to Containers and Docker

This series is intended to be a introductory look into Kubernetes. If your organization is interested in custom training around your infrastructure, please reach out to us at BoxBoat. We are both a Docker and Linux Foundation training partner and can provide onsite corporate training on Docker and Kubernetes.


Welcome to the first post in the BoxBoat Kubernetes Training Fundamentals course. We designed a blog and video series to get you familiar with the core tenants of Kubernetes and Docker container orchestration.

But first, an introduction. My name is Mike Johnson, but you can call me MJ. I am currently a Solutions Architect / DevOps Engineer with BoxBoat Technologies.

Some quick background on myself and on BoxBoat.

I have been in IT for over 18 years, largely focused on infrastructure and operations. The past few years I have spent the majority of my time on cloud technologies and DevOps working with large enterprise software companies.

BoxBoat Technologies helps companies develop, integrate, and deploy applications faster with emerging technologies like Docker and Kubernetes. If your organization needs help with anything DevOps related, please reach out to us on our contact page or call us at 202-420-9736.

Now, with that out the way lets jump into the course.

Kubernetes Training Fundamentals: Module 1 - Intro to Containers and Docker

While this series is largely focused on Kubernetes, we will start with a quick overview of containers and Docker. This series assumes you already have some knowledge of containers and Docker, but we wanted to just cover it at a high level before moving on the Kubernetes.

Kubernetes Training: Module 1 - The Video

We will be recording YouTube videos to walk you through these modules. If you prefer that, please enjoy Module 1 below. If not, skip past the video to get Module 1 in blog form.

Let’s first review what we will cover in this first module.

  • What is a container?
  • Difference between Containers and Virtual Machines
  • Docker Quick Facts
  • Why Develop In Containers
  • How to Install Docker
  • What is a Container Registry
  • Docker Basics Demo / Lab

What Is A Container

Linux containers, in short, contain applications in a way that keep them isolated from the host system that they run on. Containers allow a developer to package up an application with all of the parts it needs, such as libraries and other dependencies, and ship it all out as one package. (Source: OpenSource.com)

Recommended Reading: Containerization Crash Course - What is a Container?

Containers vs Virtual Machines

Containers

Containers are an abstraction at the app layer that packages code and dependencies together. Multiple containers can run on the same machine and share the OS kernel with other containers, each running as isolated processes in user space. Containers typically take up less space than VMs. (Source: Docker.com)

Virtual Machine

Virtual machines (VMs) are an abstraction of physical hardware turning one server into many servers. The hypervisor allows multiple VMs to run on a single machine. Each VM includes a full copy of an operating system, the application, necessary binaries and libraries - taking up tens of GBs. VMs can also be slower to boot.(Source: Docker.com)

alt text

Source: Docker

Quick Docker Facts

  • Docker is a container company that developed a Linux container technology - one that is portable, flexible and easy to deploy.
  • Docker CE is a free and open source containerization platform.
  • Docker EE, on the other hand, is a premium version of CE and is for-pay software. It comes with support from Docker.
  • Docker CE and EE can run on all major OSes.

Recommended Reading: Docker Community Edition or Docker Enterprise Edition - Everything You Need to Know

Advantages of Developing Using Containers

Using Docker, you can develop in a container on the local machine and ship in a container, with code, settings and dependencies included. That means the environment in which you test is identical to the one in which the app will deploy in production. No more worrying about dependencies, software versions and other items that typically cause software to break during code promotion.

Installing Docker

There is an abundance of ways to install Docker these days and Docker is supported on all major operating systems. We won’t take the time to run through all of them here, but we will do one better. Point you to the authoritative source for installing Docker.

Visit the Docker Website here to install on your particular system: How To Install Docker

Container Registry

The last thing we want to cover before we send you off to the is to give you a quick explanation of what a Container Registry is.

A container image registry is a service that stores container images, and is hosted either by a third-party or as a public/private registry such as Docker Hub, Docker EE DTR, offerings from AWS, Google, Azure, and many others. These registries will be where the images are “pulled” from down to the nodes that run the containers. For the purposes of this course, we will be using the Docker Hub as our Container Registry. You can check it out here: Docker Hub

Learning Platform

For the rest of this series, we will be leveraging the Katacoda training platform. Please follow along at: https://katacoda.com/boxboat

Click on “Kubernetes Basics Training Series” to begin.

Once you have completed the labs, come back here so we can do some final review. Don’t worry about rushing through the labs. We will leave those online for you to use as a learning tool.

alt text

Module 1 Summary

We hope you found the above information and the labs helpful in beginning to understand the basic of Docker. Here is a quick recap of what we covered.

  • Containers were originally a Linux construct leveraging cgroups and namespaces and Docker developed a container system around it.
  • Containers are similar to virtual machines in that they are isolated entities but containers are smaller because they leverage a shared kernel while VMs each run their own. Because of this, containers are more portable and CAN start up much quicker.
  • Docker Inc. is a company that develops and supports the leading container format. Docker is the default container system supported by Kubernetes.
  • Docker Inc. develops and maintains 2 versions of Docker. Docker Community Edition (CE) which is free and offers no support and Docker Enterprise (EE) which is a for-pay product that offers various levels of access to Docker Support.
  • Docker can be installed on all major operating systems and is supported by numerous container orchestration platform, particularly Kubernetes.
  • Lastly, we covered what a container registry is and demonstrated some Docker command line basics.

In Closing

Containers and Docker are a powerful tools and you should gain a solid foundation in containers and Docker before moving on to running Kubernetes in production.

If your organization needs help developing, implementing or deploying your software in containers, container orchestration, DevOps guidance, or Docker / Kubernetes training, please reach out to us at BoxBoat.

In the next video we will get an introduction to Kubernetes and start learning why it is the present (and future) of container orchestration. Stay tuned!

BoxBoat Accelerator

Learn how to best introduce Docker into your organization. Leave your name and email, and we'll get right back to you.

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.