If you’re a developer hunting for Docker and Kubernetes-related resources, then you have finally arrived at the right place. Docker is a suite of software development tools for creating, sharing and running individual containers. it started with a great developer experience. You can just bring up new applications with a simple command; docker run -it alpine.
As per the Gartner survey report, 70% of organizations will be running multiple containerized apps by 2023. Momentum has definitely grown, and it’s led us to some very humbling discoveries in 2022: Docker is the #1 most loved development tool, and remains the #1 most-wanted tool as per the Stack Overflow’s 2022 Developer Survey
Docker is a containerization platform that packages your application and all its dependencies together in the form of a docker container to ensure that your application works seamlessly in any environment. Docker Container is a standardized unit which can be created on the fly to deploy a particular application or environment. It could be an Ubuntu container, CentOs container, etc. to fulfil the requirement from an operating system point of view. Also, it could be an application-oriented container like a CakePHP container or a Tomcat-Ubuntu container etc.
Let us quickly jump into the top 5 tutorials and resource sites that you might useful, no matter if you are a beginner, intermediate or experience developer.
#1. The Docker Official Documentation
Level: Beginners, Intermediate, Advance
With over 3,700 Github stars and 3,500+ contributors, https://docs.docker.com remains the best resource for learning Docker. You can learn the basics of Docker and understand the benefits of containerizing your applications. The documentation site covers all the leading desktop platforms – Mac, Windows and Linux. It shows how to containerise the app and deploy it to the Clou
#2. The Docker Awesome-Compose Repository
The awesome-compose repository was created to provide a quick and simple way for developers to experience Compose-based setups with different software stacks. With over 19,500 stars, 3,200 forks, awesome-compose is a popular Docker repository that contains a curated list of Docker Compose samples. It helps developers learn about Docker Compose by providing a starting point for how to integrate different services using a Compose file and to manage their deployment with Docker Compose. This project is hosted over Docker GitHub organization, Inc and publicly open for the community to contribute and submit their compose file.
The setups provided currently in the awesome-compose repository fit mainly in two categories:
- Application skeletons: useful for kicking off project development. We can find different application skeletons with multiple services already wired together and ready to be launched with docker-compose;
- Setups with different open-source software stacks. These are not production ready, they are intended mostly for personal/home use or simply for developers to get familiar with them within their local dev environment.
All samples in the repository are provided as they are, everybody can customize each sample according to their needs. Do check out this blog that shows how to get started with the sample apps.
Awesome-Compose: What It is and Why You Should Really Care About It
Access the Docker Awesome-Compose Repository
#3. The Docker Language-Specific Guides
Level: Intermediate, Advance
For those developers who want to setup their development environment and start containerising their apps considering the best practices, this is the right place to get started with. The language-specific getting started guides walk you through the process of setting up your development environment and start containerizing language-specific applications using Docker. The learning modules contain best practices and guidelines that explain how to create a new Dockerfile in your preferred language, what to include in the Docker image, how to develop and run your Docker image, set up a CI/CD pipeline, and finally provides information on how to push the application you’ve developed to the cloud.
In addition to the language-specific modules, Docker documentation also provides guidelines to build and efficiently manage your development environment. You can find information on the best practices for writing Dockerfiles, building and managing images efficiently, gaining performance improvements by building images using BuildKit, etc. You can also find specific instructions on how to keep your images small, how to persist application data, how to use multi-stage builds, etc.
Access Docker Language Specific Guide Now
#4. The Docker Sample Apps Repository
Level: Intermediate, Advance
This repository shows how to containerise different types of services by walking through the Official Docker samples. It’s a collection of over 30 repositories that offer sample containerized demo applications, tutorials, and labs.
Few of my favourite sample apps includes:
- Building a Slack Clone App using Mongo, Express, React and Nodejs(MERN) Stack
- Voting App using PostgreSQL, Redis, NodeJS and .NET
- Develop and Deploy A Customer Churn Prediction Model using Python, Streamlit and Docker
- A Simple URL Shortener built using TypeScript and Nest.js powered with Docker
- Build and Deploy a Retail Store Items Detection System using Node-RED on IoT Edge device
Access Docker Sample Apps
#5. Docker Labs – A Curated List of Docker Developer Tutorials
If you’re a self-learner and truly believe that technical expertise can be gained through intensive practical hands-on labs and tutorials, do check out this community-driven curated list of Docker Labs. With over 500+ labs and tutorials, this is one of the most popular Docker resource on the internet. It is a free resource curated by the Collabnix community. These labs doesn’t require any infrastructure. Everything runs on PWD(https://play-with-docker.com) platform. Every single lab is well-verified and well-tested.
Workshop/Labs (Hands-On Practical Labs)
Title | Topics Covered | Labs |
---|---|---|
Getting Started | Why, What & How about Docker?(slides) | – |
Docker for Beginner | Docker Image, Container, Dockerfile, Volumes, Networking | 40 |
Docker for Intermediate | Docker Compose, Swarm, Advanced Networking | 50 |
Docker for Advanced | Docker Security, Content Trust, Image Scanning, Swarm Mode Security | 31 |
Access Docker Labs Tutorials
#6 Docker Tools – A Curated List of Docker Developer Tools
Level: Intermediate, Advance
Developers love Docker. Docker is a suite of software development tools for creating, sharing and running containers. Developers use Docker to accelerate how they build, share, and run modern applications. This repository was built with a purpose. It is being used by Collabnix community internally to target the most popular developer tools and technique and coming up with the best practices around these tools.
Access Docker Tools Repository
#7. The Docker Community Extensions Repository
Level: Intermediate, Advance
Docker Extensions lets you use third-party tools within Docker Desktop to extend its functionality. With Extensions, developer can boost Docker Desktop capabilities by directly integrating an array of developer tools. It allows developers to seamlessly connect their favourite development tools to their application development and deployment workflows. Developers can now augment Docker Desktop with debugging, testing, security, and networking functionalities, and build custom add-ons using the Extensions SDK. This repository is a curated list of all the Docker Extension Marketplace as well as the community contributed Docker Extensions.
Access Docker Community Extensions
#8. Kubetools – A Curated List of Kubernetes Tools
Level: Intermediate, Advance
There are more than 300+ Kubernetes Certified Service Providers and tons of Kubernetes Certified distributions. Choosing a right distribution can be a daunting task. Kubetools is built with a purpose to build a curated list of popular Kubernetes tools. It is actively maintained by Collabnix Slack Community. This repository is unique in the sense that tools are categorised in the following ways:
- Cluster Management
- Cluster with Core CLI Tools
- Alerts and Monitoring
- Logging and Tracing
- Troubleshooting
- Development Kits
- CI/CD Integration Tools
- Security
- Network Policies
- Testing Tools
- Service Mesh
- Observability
- Machine Learning
- and more..
Access Kubernetes Tools
#9. Docker Community Forum
Level: Beginner, Intermediate, Advance
Technical forum like Docker Community provides a space for developers to connect with fellow developers and Docker experts as you give and receive help on a wide variety of development topics, from implementing new technologies to share information and ideas. They can be used to connect people with similar interests, and to facilitate discussion and debate. It’s a valuable resource for gathering feedback and input from a wide range of Docker experts like Docker Captains and community leaders.
Docker Community forums has tons of categories that you might be interested on.
List of Categories
Announcements
Category for announcing new or updates to the Docker community, products, projects, training, etc, that includes:
-
New Docker community Meetups
-
Docker product and project announcements
-
Upcoming public training sessions and much more.
Tips & HowTos
This is newly introduced category. Here you can read and share ideas for making the most of Docker tools, including walk-through videos and some handy tips & tricks.
Docker + Wasm
This is recently added category where you can discuss about Docker & WebAssembly(a.k.a Wasm). Here you can learn how to Build, Share, and Run WebAssembly Apps Using Docker.
Community
This category is targeted at Docker community events and hackathons. You get a chance to know what the community is up to by asking it here.
- You can enquire about the upcoming events(virtual or in-person)
- You can ask Event organizer to share slides and presentations
- As an event organiser, you can announce your events here
- You can ask community to RSVP for the upcoming events