Docker Tutorial
Course Contents
Docker Fundamentals
- Docker Introduction
- Installing Docker
- How Docker Works (Images, Containers, Layers)
- Containers vs Virtual Machines
- Docker Get Started (Hello World)
- The Docker Architecture (Daemon, Client, Registry)
Working with Images
- Docker Images Explained
- docker pull
- docker images and Image IDs
- docker rmi and Removing Images
- Image Tags and Versioning
- Docker Hub and Image Registries
Running Containers
- docker run
- Common docker run Flags
- docker ps and Container Status
- docker stop, start, restart
- docker rm and Removing Containers
- docker exec and Interactive Shells
- docker logs
The Dockerfile
- Writing Your First Dockerfile
- FROM and Base Images
- RUN, COPY, and ADD
- WORKDIR, ENV, and ARG
- EXPOSE, CMD, and ENTRYPOINT
- docker build
- Dockerfile Best Practices
Image Layers and Caching
Data and Storage
- Docker Volumes
- Bind Mounts vs Volumes
- Managing Volumes
- Persisting Database Data in Containers
- tmpfs Mounts
Networking
- Docker Networking Basics
- Port Mapping with -p
- Bridge, Host, and None Networks
- Creating Custom Networks
- Container-to-Container Communication
Environment and Configuration
- Environment Variables in Containers
- Using .env Files
- Docker Secrets
- Resource Limits (CPU and Memory)
- Restart Policies
Docker Compose
- Docker Compose Introduction
- The docker-compose.yml File
- docker compose up and down
- Multi-Service Applications with Compose
- Compose Networks and Volumes
- Compose Environment Variables and .env
- Scaling Services with Compose
Debugging and Inspecting
Docker for Application Development
- Dockerizing a Node.js Application
- Dockerizing a Python Application
- Development vs Production Images
- Hot Reload in a Container
- Connecting a Containerized App to a Database
Registries and Distribution
- docker tag
- docker push
- Private Registries
- Docker Hub Automated Builds
- Image Scanning and Vulnerabilities
Docker Security
- Docker Security Basics
- Running Containers as Non-Root
- Read-Only Filesystems
- Limiting Container Capabilities
- Keeping Secrets Out of Images
Orchestration Basics
- Why Orchestration? From Compose to Clusters
- Docker Swarm Basics
- Introduction to Kubernetes Concepts
- Choosing Compose vs Swarm vs Kubernetes
