Container Jungle: where do I start? Docker, Kubernetes
Container is one of the greatest revolutions happening in these years. Since the technology inception, containers have evolved at a lightning-fast speed. Understanding what to learn and what to postpone can be daunting if you haven’t kept up to date in these years. If you’re having troubles deciding where to start, this article is for you.
Stick with the basics: containers? They’re just lightweight VMs
Before you deep dive into the submerged world of containers, it will help you during your journey if you grasp the very fundamentals about the containers technologies rather than a particular container technology.
Essentially containers are lightweight VMs (you will hear this a lot!). Instead of virtualizing the whole hardware stack, the kernel is shared among containers. This makes containers an operating-system level virtualization technology, which is different from regular Virtual Machines.
Docker: meet the container whale
If there’s one specific technology that ignited the exponential growth of containers, that is Docker. Containers existed even before Docker, but after its inception in 2013 there was no way to stop containers. Docker is open source and available in two editions: Community Edition and Enterprise Edition. Here’s a list of a few articles that will help you get started:
- What is Docker? How to get started?
- Docker Basics
- Getting started with Docker on Windows
- How to Docker on Raspberry PI (Raspbian)
Docker is surely one of the biggest technology and it serves as the foundation for most containers workloads running today. Although the world is shifting from a Docker world to a “Docker-less” world you may stay assured this is the most valuable knowledge for starters. Here you can find some more in-depth articles about Docker:
- (Beginner) What is Docker-Compose? How do you use it?
- (Intermediate) A comprehensive guide to Dockerfiles
- (Intermediate) A comprehensive guide to Docker Volumes
- (Intermediate) A comprehensive guide to Docker Networking
Kubernetes: meet THE orchestrator
If Docker ignited the container revolution, Kubernetes is taking it to a higher level. Although Docker has its own orchestrator (Docker Swarm) which is easy to setup and use, you really want to use Kubernetes if you’re serious about orchestration. Kubernetes is an open source software initially launched and developed by Google. Kubernetes is HARD. Be sure to understand Docker, containers and networking before working your way up to Kubernetes.
- (Beginner) What is Kubernetes?
- (Intermediate) Minikube: Kubernetes on Windows without headaches
- (Intermediate) How to install and access Kubernetes Dashboard
If you have a solid understanding of Kubernetes internals you’re halfway past your journey (which is not that common).
OpenShift: Kubernetes on steroids (advanced)
Straying away from the fundamental container infrastructure (Docker, Kubernetes), OpenShift aims to be a PaaS solution built on top of Kubernetes. Although there are alternatives, OpenShift is the most solid PaaS solution built on containers. OpenShift is backed by Red Hat and it is available as:
- open source software: OpenShift Origin, recently renamed Origin Community Kubernetes Distribution a.k.a OKD.
- paid software: OpenShift Container Platform (former OpenShift Enterprise).
- hosted by Red Hat: OpenShift Online, OpenShift Dedicated.
Here’s a few tutorials that you may find useful:
Mesos: another ecosystem
While Docker and Kubernetes were shining bright with all the attention, another ecosystem was being actively developed. Apache Mesos is an open source project aiming to create a “kernel” for the data-center. Mesos has its own containers, but you can run Docker or even Kubernetes on top of it (confusing isn’t it?). Just keep in mind Mesos is not a container technology per se. Mesos also works well with Big Data software such as Hadoop or Spark.
The container landscape is so vast that it is hard to know all the projects names alone. Here are a few more technologies and articles that you may be interested in:
- LXC: Getting started with Linux Containers [Beginner, non-Docker]
- What is Rancher? Containers in the age of Cattle [Intermediate, Kubernetes]
- ResinOS: step up your container game Raspberry PI [Intermediate, Docker]