Docker Prologue
Let’s Use Docker
Since I started working in software at my company, we have been operating in a Traditional Deployment model, where applications are installed and managed on a single OS running on a Bare Metal Server. However, starting in 2023, our department suddenly introduced Kubernetes (K8s), making it essential to understand Docker and K8s in order to perform daily tasks in a Container Deployment environment.
Apart from K8s, other orchestration platforms include Amazon ECS and Docker Swarm, but K8s seems to dominate the market, accounting for approximately 70% of searches. Kubernetes was officially released in 2015 and began gaining traction in Azure and AWS around 2018. Given that timeline, it seems that our department has adopted K8s approximately five years later than major cloud providers.
Through this tutorial, I aim to share the knowledge and insights I have gained while learning Docker and Kubernetes.
To begin, before diving into K8s, I will first set up a Docker environment, create Docker images, and run containers. Stay tuned and follow along!
Platform | Market Share (Estimated) | Description |
---|---|---|
Kubernetes | ~70% | The dominant open-source container orchestration platform, widely adopted across various cloud environments. |
Amazon ECS | ~10% | AWS’s container orchestration service, tightly integrated with AWS infrastructure. |
Docker Swarm | ~5% | A simple orchestration tool from Docker, easy to set up but limited in scalability and features compared to Kubernetes. |
Apache Mesos | ~5% | A large-scale cluster management platform supporting various workloads but declining in adoption due to complexity. |
HashiCorp Nomad | ~5% | A lightweight orchestration tool known for simplicity and fast deployment, but with a smaller ecosystem compared to Kubernetes. |
Others | ~5% | Includes OpenShift, Rancher, and other platforms used in specific industries or enterprises. |
Historical context for Kubernetes(Source: Kubernetes)
Recommended For:
This tutorial is perfect for those who relate to any of the following scenarios (and, to be honest, all of these apply to me!):
- I need to set up a small-scale Kubernetes (K8s) cluster within my department instead of using the company’s existing K8s infrastructure and operate my own services.
- I want to build Docker images on my computer and deploy them.
- I also need to utilize a GPU for machine learning (ML) and deep learning (DL).
- I want to learn K8s.