🏗️ Getting Started with Docker
- A $0 Learning Platform for All Levels - from the ground Up
- Over 500+ Highly Interactive Docker Tutorials and Guides
- Well tested on Docker Desktop and can be run on Browser (no Infrastructure required)
🚀 Tested Platform
📝 Join our Community
- Join 7000+ DevOps Engineers today via Community Slack
- Join our Discord Server
- Fork, Contribute & Share via DockerLabs GITHUB Repository
- Click and Follow us over Twitter
📌 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 |
Docker Desktop | Docker Dashboard, Dev Environments, Extensions | 5 |
Docker for Data Scientists | AI/ML | 1 |
Docker for AI | AI/ML | 1 |
Docker for IoT | IoT | 1 |
Language-specific Labs and Tutorials
Docker WorkShop for Beginners
Pre-requisite:
Getting Started with Docker Image
- Running Hello World Example
- Working with Docker Image
- Saving Images and Containers as Tar Files for Sharing
- Building Your First Alpine Docker Image and Push it to DockerHub
Accessing & Managing Docker Container
Getting Started with Dockerfile
- What is Dockerfile
- Understanding Layering Concept with Dockerfile
- Creating Docker Image with
- Lab #1: Installing GIT
- Lab #2: ADD instruction
- Lab #3: COPY instruction
- Lab #4: CMD instruction
- Lab #5: ENTRYPOINT instruction
- Lab #6: WORKDIR instruction
- Lab #7: RUN instruction
- Lab #8: ARG instruction
- Lab #9: ENV instruction
- Lab #10: VOLUME instruction
- Lab #11: EXPOSE instruction
- Lab #12: LABEL instruction
- Lab #13: ONBUILD instruction
- Lab #14: HEALTHCHECK instruction
- Lab #15: SHELL instruction
- Lab #16: Entrypoint Vs RUN
- Lab #17: USER instruction
- Lab #1: Installing GIT
- Writing Dockerfile with Hello Python Script Added
Creating Private Docker Registry
Docker Volumes
- Managing volumes through Docker CLI
- Creating Volume Mount from docker run command & sharing same Volume Mounts among multiple containers
Docker Networking
- The docker network Command
- Lab #1: Listing the Networks
- Lab #2: Inspecting a Network
- Lab #3: List network driver plugins
- Lab #4: Docker Bridge Networking
Docker Workshop for Intermediate Users
Docker Compose
-
How to Install Docker Compose?
- Lab #1:
version
Command - Lab #2:
help
Command - Lab #3:
Config
Command - Lab #4:
Build
Command - Lab #5:
Pull
Command - Lab #6:
Push
Command - Lab #7:
up
Command - Lab #8:
Images
Command - Lab #9:
ps
Command - Lab #10:
Stop
Command - Lab #11:
Start
Command - Lab #12:
Restart
Command - Lab #13:
pause
Command - Lab #14:
Unpause
Command - Lab #15:
Logs
Command - Lab #16:
Port
Command - Lab #17:
Run
Command - Lab #18:
Scale
Command - Lab #19:
Exec
Command - Lab #20:
Kill
Command - Lab #21:
Rm
Command - Lab #22:
Down
Command
- Lab #1:
-
A Simple Wordpress Application running on Single Node using Docker Compose
Docker Swarm
Introduction to Docker Swarm
Docker Services | Scaling | Draining Node | Rescheduling Containers
- Creating 5-Node Docker Swarm Cluster
- Lab #1: Creating Overlay Network
- Lab #2: Deploy Services
- Lab #3: Inspecting Docker Swarm Service States
- Lab #4: Scaling Docker Swarm Services
- Lab #5: Deploy the application components as Docker services
- Lab #6: Drain a node and reschedule the containers
- Lab #7: Cleaning Up
Docker Networking - II
Overlay Networking
- Lab #1: Docker Overlay Networking
- Lab #2: Create an overlay network
- Lab #3: Create a service
- Lab #4: Test Service Discovery
- Lab #5: Test Routing Mesh
- Lab #6: Test standalone containersinOverlayNetwork
Implementing MacVLAN
Docker Workshop for Advance Users
Docker Security101
Docker Content Trust
- Lab01 - Pulling images by tag
- Lab02 - Pulling images by digest
- Lab03 - Docker Content Trust
- Lab04 - Official Images
- Lab05 - Extra for experts
- Lab06 - Enable Docker Content Trust
- Lab07 - Push & Sign an Image
- Lab08 - Cleaning Up
Docker Secrets Management
- Lab01- Create a Secret
- Lab02 - Manage Secrets
- Lab03 - Access the secret within an app
- Lab04 - Clean-up
Docker Secret Management with UCP
Docker Network Security
- Lab01 - Create an encrypted overlay network
- Lab02 - List networks
- Lab03 - Deploy a service
- Lab04 - Clean-up
Security Scanning
- Lab01 - Create a private Hub repo
- Lab02 - Pull an image
- Lab03 - Tag and push an image
- Lab04 - View scan results
- Lab05 - Clean-up
Swarm Mode Security
- Lab01- Create a new Swarm
- Lab02 - Add a new Manager
- Lab03 - Add a new Worker
- Lab04 - Rotate Join Keys
- Lab05 - View certificates
- Lab06 - Rotate certificates
🔥 Concepts and Terminologies (Beginners to Advance)
- Docker for Beginners
- Docker for Intermediate
- Docker for Advanced
- Docker Cheatsheet
- Docker Certificate Associate Exam Preparation
- Docker Interview Questions
🗃️ Sample App
We recommend you to visit Docker Awesome Compose Repository in order to find the Compose files for running sample apps
Web Framework
Python/Django |
---|
Docker + Django + PostgreSQL |
Python + Flask + Redis |
Reactjs |
---|
React + Spring + MySQL |
React + Express + MySQL |
React + Express + MongoDB |
React + Rust + PostgreSQL |
React + Nginx |
Golang |
---|
Go + NGINX + MySQL |
Go + NGINX + PostgreSQL |
Docker + Gomodule |
Java / Spring Boot |
---|
Spring + PostgreSQL |
Java Spark + MySQL |
Database
PostgreSQL |
---|
Docker + Django + PostgreSQL |
MongoDB |
---|
NGINX + Flask + MongoDB |
NodeJS + MongoDB |
MySQL |
---|
NGINX + ASP.NET + MySQL` |
Monitoring
Prometheus |
---|
Docker + Prometheus Stack + Docker Swarm |
Logging
Elastic |
---|
Docker + Elasticsearch + Logstash + Kibana + Docker Swarm |
Elasticsearch + Logstash + Kibana |
Testing Tools
Apache JMeter |
---|
Docker + Apache Jmeter + Docker Swarm Mode |
Networking
MacVLAN |
---|
Docker + MacVLAN |
Docker + Docker Compose & IPv6 |
Security
Docker Security |
---|
Introduction to Docker Security |
Running Containers as ROOT |
👥 Governance
Dockerlabs is an independent community project founded by Ajeet Singh Raina, a Docker Captain from India & Docker Community Leader which is now being built & shaped by a growing community of contributors across the globe.
Core Contributors
Ajeet Singh Raina |
Sangam Biradar |
Savio Mathew |
Saiyam Pathak |
Apurva Bhandari |
Sarkar Tathagata |
Prashansa K |
---|---|---|---|---|---|---|
Wikitops |
Akshit Grover |
Ameya Agashe |
Bala |
🚀 How to Contribute
Thank you so much for showing your interest in contributing to Dockerlabs tutorials.
Guide to submitting your own tutorial
Template for writing Tutorial Page