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)
Join our Community
- Join 9000+ DevOps Engineers today via Community Slack
- Join 2300+ Discord members
- Fork, Contribute & Share via DockerLabs GITHUB Repository
- Click and Follow us over Twitter
Featured Blog Posts and Articles
- Docker GenAI Stack on Windows using Docker Desktop
- A First Look at Docker Scout – A Software Supply Chain Security for Developers
- Getting Started with GenAI Stack powered with Docker, LangChain, Neo4j and Ollama
- Docker Init for Go Developers
- What is Docker Compose Include and What problem does it solve?
- Leveraging Compose Profiles for Dev, Prod, Test, and Staging Environments
- What is Docker Compose Watch and what problem does it solve?
- What is Resource Saver Mode in Docker Desktop and what problem does it solve?
- ? Boost Your Docker Workflow: Introducing Docker Init for Python Developers
- How to Integrate Docker Scout with GitHub Actions
? Workshop/Labs (Hands-On Practical Labs)
| Title |
Topics Covered |
Labs |
| Getting Started |
Why, What & How about Docker?(slides) |
- |
| Docker Core Concepts |
Concepts of Docker Image, Containers, Multi-container apps |
- |
| 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 |
Latest Docker Desktop Features and Demos
| Title |
Topics Covered |
Category |
Labs |
| Docker Scout |
Scout CLI, Scout Sample Demo |
Security |
2 |
| Docker Extensions |
Docker Extensions |
Development Tools |
1 |
| Docker init |
Dockerfile, Compose, Python, Go, Rust, Node |
Developer Tools |
5 |
| Docker init for Python |
Dockerfile, Compose, Python |
Developer Tools |
1 |
| Docker init for Go |
Dockerfile, Compose, Go |
Developer Tools |
1 |
| Docker init for Rust |
Dockerfile, Compose, Rust |
Developer Tools |
1 |
| Docker init for ASP.NET |
Dockerfile, Compose, .NET |
Developer Tools |
1 |
| Docker init for PHP |
Dockerfile, Compose, PHP |
Developer Tools |
1 |
| Compose Watch |
Compose, Sync, Rebuild |
Developer Tools |
1 |
| Compose Include |
Compose, Include |
Developer Tools |
1 |
| Compose Profile |
Compose, Profile, Staging, Prod |
Developer Tools |
1 |
Industry Use cases
| Title |
Topics Covered |
Labs |
| Docker for AI |
Docker for Data Scientist |
1 |
| Docker for Leading IDEs |
Developer IDEs |
Not Started |
| Docker for Financial Service |
- |
Not Started |
| Docker for Healthcare |
- |
Not Started |
Containerd Blogs & Resources
| Title |
Topics Covered |
Labs |
| What is Containerd and what problems does it solve |
- |
Not Started |
| Containerd and Kubernetes |
- |
Not Started |
| How To Run Containerd On Docker Desktop |
- |
Not Started |
| Getting Started With Containerd 2.0 |
- |
Not Started |
| Containerd Vs Docker: What’s the difference? |
- |
Not Started |
Docker WorkShop for Beginners
Pre-requisite:
- Creating Your DockerHub Account
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
- Accessing the Container Shell
- Running a Command inside running Container
- Managing Docker Containers
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
- Writing Dockerfile with Hello Python Script Added
Creating Private Docker Registry
- Building a Private Docker Registry
- Building a Private Docker Registry with UI
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
- Lab #5: Basics of Docker Bridge Networking
- Lab #6: Connect a Docker container to bridge network
- Lab #7: Test Network Connectivity
- Lab #8: Configure NAT for external connectivity
Docker Workshop for Intermediate Users
Docker Compose
-
Compose101 Slides
-
Introduction to Docker Compose
-
Dockerfile Vs 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
-
Create first docker compose file with ngnix and mysql
-
Use JSON instead of YAML compose file in Docker?
-
A Simple Wordpress Application running on Single Node using Docker Compose
Docker Swarm
Introduction to Docker Swarm
- What is Docker Swarm
- Docker Swarm : Terminology
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
- Lab #7: Getting Started with 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
- Lab01 - Create a Secret
- Lab02 - Deploy an App
- Lab03 - Test the App
- Lab04 - View the Secret
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 |
Docker Scout Resources and Links
This is a curated list of Docker Scout related resources. It is not an official list, but a community effort to help people find the best stuff for Docker Scout in 2023 and beyond.
Download Docker Scout Cheatsheet Now!!
Scout Blogs
- Skout - Docker Scout for Your Kubernetes
- Enhancing Your GitHub Workflow with Docker Scout
- Achieve Security and Compliance Goals with Policy Guardrails in Docker Scout
- A First Look at Docker Scout – A Software Supply Chain Security for Developers
- Docker Scout vs Scan
- How to scan container images with Docker Scout
- Mastering Docker Scout through Docker Desktop GUI and CLI
- Vulnerability and Dependency Scanning with Docker Scout
- Docker 4.18 Extends Scout, Adds Container File Explorer, Docker Init, and More
- Using Docker Scout to Scan Container Images
- Understanding Docker: part 42 – Docker Scout
- How to Integrate Docker Scout with GitHub Actions
- Scan Container Images for Vulnerabilities with Docker Scout
- Docker Scout by Fsegredo
- How to Integrate Docker Scout with GitLab
- Docker Scout Unveils Advanced Features to Bolster Software Supply Chain Integrity
- How to integrate Docker Scout with Azure Container Registry
- CI pipeline with Docker Scout and SAST scanning for an OWASP-based Python app
Scout Tutorials
- Docker Scout quickstart
- Docker Scout Advanced image analysis
- Integrate Docker Scout with GitHub Actions
- Integrate Docker Scout with GitLab CI
- Integrate Docker Scout with Microsoft Azure DevOps Pipelines
- Integrate Docker Scout with Circle CI
- Integrate Docker Scout with Jenkins
- Advisory Database sources and matching service
- Docker Scout Integration with SonarQube
GitHub Sample projects for Scout
Scout Case Studies
- How JW Player Secured 300 Repos in an Hour with Docker Scout
- Sysdig and Docker Forge Alliance to Accelerate Cloud-Native Security
Scout Featured Videos
| Docker Scout: Securing The Complete Software Supply Chain (DockerCon 2023) |
Cut Through Vulnerability Noise with Runtime Insights (DockerCon 2023) |
|
|
| Docker Scout: Live Demo, Insights, and Q&A |
Vulnerability Scanning and Reporting |
|
|
| Find Vulnerabilities Fast! New Docker CLI Command |
Adding the docker scout feature to the Docker CLI |
|
|
| How to scan Container image using Docker Scout |
Docker Scout Tutorial: Docker scanning |
|
|
| TECHarlas #3 - Supply chain, Docker Scout y seguridad en contenedores con Felipe Cruz de @DockerIo |
|
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
License
Apache License 2.0
Proceed to Beginners Track >>