Docker and Kubernetes Learning Resources
In 2018, I was new to Docker. In 2019, I was new to Kubernetes. Over the last year, I have been working a lot with both.
While I believe the best way to learn any new technology is to use it continuously, there are usually some resources that help start off with a technology simpler than otherwise. In this post, I list the ones which made Docker and Kubernetes easy for me.
Docker – From the Beginning
This series of blog posts from Chris Noring was completely accessible to me as a newbie, and helped me start with a good foundation.
- Part 1: Images and Containers
- Part 2: Volumes
- Part 3: Databases and Linking
- Part 4: Docker Compose Basics
- Part 5: Docker Compose, Variables, Volumes, Networks and Databases
Kubernetes Basics
As I was looking for something similarly accessible like the above, this series by Daniel Sanche fit the bill.
Kubernetes – From the Beginning
Note: I have not gone through this series because by the time it was published, I was already comfortable with Kubernetes. I list this here simply because it is from the same author as the Docker series above, and so I expect this to be a beginner-friendly resource.
- Part 1: Basics, Deployment and Minikube
- Part 2: Pods, Nodes and Services
- Part 3: Scaling My App
- Part 4: Autoscaling
Visual Studio Code Kubernetes Extension
If you are not a VS Code user, I would recommend you still install it just for this. And within VS Code, install the Kubernetes extension. This extension gives you a clickable way to explore all the Kubernetes concepts within your cluster.
If you click on the Kubernetes icon on the sidebar, you will have your clusters listed. Once you choose a cluster, you will get a tree structure that you can click to expand/collapse and explore.
You can then click on any of the leaf items, pods for example, and it’ll open up its YAML definition which you can study.
You can also right-click on these items, and get a context-menu to launch further actions like following logs.
All of these are, of course, possible by using the kubectl command-line. But I found mastering those commands not easy to begin with. Using the VS Code extension’s GUI, and visually organizing the concepts in my mind first helped me later when I started using the command-line more.
Kubernetes – Up and Running
A few days into working with Kubernetes, I got a copy of Kubernetes Up & Running by Kelsey Hightower. Reading through it, and connecting the concepts to my everyday usage helped solidify the learnings.