Docker Internals (Deep Dive)
Container Fundamentals (Before Docker)
- What is a container (process isolation concept)
- Containers vs Virtual Machines (OS-level vs hardware virtualization)
- Why containers are lightweight
- Linux namespaces overview
- Control Groups (cgroups) and resource limits
- Union filesystems and layered filesystems
- Copy-on-Write (CoW) filesystem concept
Container Runtime & Internals
- Linux namespaces deep dive (PID, NET, MNT, IPC, UTS)
- cgroups deep dive (CPU, memory, IO limits)
- Container filesystem layers
- OverlayFS and how layered filesystems work
- Open Container Initiative (OCI) standards
- Container runtime stack (containerd and runc)
- How a container actually starts on Linux
Docker Concepts & Architecture
- What is Docker and what problems it solves
- Docker architecture (Client, Daemon, Engine, Registry)
- Docker images vs containers
- Docker image layers
- Container lifecycle in Docker
- Installing Docker and verifying installation
Essential Docker Commands & Workflow
- Running containers (docker run)
- Listing containers (docker ps)
- Stopping containers (docker stop)
- Removing containers (docker rm)
- Pulling images from registries (docker pull)
- Managing images (docker images, docker rmi)
- Executing commands in containers (docker exec)
- Inspecting and debugging containers (docker inspect, docker logs)
Docker Images & Dockerfiles
- What is a Dockerfile
- Writing a basic Dockerfile
- Core Dockerfile instructions (FROM, RUN, COPY, CMD, ENTRYPOINT)
- Building images (docker build)
- Image tagging and versioning
- Docker layer caching and build optimization
- Multi-stage builds for smaller images
Networking, Storage & Multi-Container Applications
- Default Docker bridge network (docker0)
- Port mapping and traffic routing
- Network modes (bridge, host, none)
- Container DNS and service discovery
- Volumes vs bind mounts
- Persisting container data with volumes
- Environment variables and configuration
- Introduction to Docker Compose
- Writing docker-compose.yml
- Managing multi-container applications with Compose
DSA in Go (Arrays, Strings, Linked List, Hashing)
Arrays
- Two Sum (LeetCode)
- Best Time to Buy and Sell Stock
- Maximum Subarray (Kadane)
Strings
- Valid Anagram
- Longest Substring Without Repeating Characters
- Group Anagrams
Linked List
- Reverse Linked List
- Merge Two Sorted Lists
- Linked List Cycle
Hashing (Intermediate)
- Top K Frequent Elements
- Subarray Sum Equals K
- Longest Consecutive Sequence