Advanced Topics
1️⃣ Docker Build Optimization¶
Example: Bad vs Good Dockerfile¶
❌ Bad (breaks cache every build)
COPY . .
RUN npm install
````
✅ Good (uses layer caching)
```Dockerfile
COPY package*.json ./
RUN npm install
COPY . .
Commands¶
Docs¶
- https://docs.docker.com/build/cache/
- https://docs.docker.com/develop/develop-images/dockerfile_best-practices/
2️⃣ CMD vs ENTRYPOINT¶
Example¶
Override CMD:
Inspect configuration:
Docs¶
- https://docs.docker.com/engine/reference/builder/#cmd
- https://docs.docker.com/engine/reference/builder/#entrypoint
3️⃣ Environment Variables & Secrets¶
Example¶
❌ Avoid hardcoding secrets:
Docs¶
- https://docs.docker.com/compose/environment-variables/
- https://docs.docker.com/engine/swarm/secrets/
4️⃣ Multiple Docker Compose Files¶
Example¶
Docs¶
5️⃣ Docker Networking (Deep)¶
Example¶
docker network create app-net
docker run --network app-net --name api api-image
docker run --network app-net frontend-image
Service-to-service access:
Commands¶
Docs¶
6️⃣ Volumes vs Bind Mounts¶
Volume (Persistent)¶
Bind Mount (Development)¶
Docs¶
7️⃣ Docker Security¶
Run as Non-Root¶
Read-Only Filesystem¶
Docs¶
8️⃣ Resource Management¶
Limit Resources¶
Monitor Usage¶
Docs¶
9️⃣ Health Checks¶
Dockerfile¶
Inspect¶
Docs¶
🔟 Docker in CI/CD (GitHub Actions Example)¶
Example¶
Docs¶
1️⃣1️⃣ Docker Registry¶
Tag & Push¶
Docs¶
1️⃣2️⃣ Docker-in-Docker vs Docker Socket¶
Docker Socket (Preferred)¶
⚠ Gives full control over host Docker.
Docker-in-Docker¶
Docs¶
1️⃣3️⃣ Logging & Observability¶
Logs¶
Inspect Logging Driver¶
Docs¶
1️⃣4️⃣ Debugging Containers¶
Exec vs Attach¶
Inspect Image Layers¶
Docs¶
1️⃣5️⃣ Multi-Architecture Images¶
Build Multi-Arch Image¶
Docs¶
1️⃣6️⃣ Docker → Kubernetes Transition¶
Why Kubernetes?¶
- Auto scaling
- Self-healing
- Service discovery
Docs¶
🗺 Recommended Learning Order¶
✅ Final Notes¶
By practicing the examples in this document, you will:
- Understand Docker deeply
- Be production-ready
- Confidently face DevOps interviews