Docker + DevOps
Learn Docker, Docker Compose, Git advanced, Linux basics, CI/CD, and cloud deployment.
Overview
DevOps bridges the gap between software development and production operations. As an advanced fullstack developer, you need the skills to package, containerize, orchestrate, automate, and deploy distributed microservices reliably to the cloud.
This track guides you through advanced Git branching workflows, Linux systems administration, containerization with Docker, multi-container orchestration with Docker Compose, automated CI/CD with GitHub Actions, and cloud deployment on AWS and Vercel.
Git Advanced (Fill Gaps)
Master advanced version control patterns and collaboration workflows used in enterprise teams.
- Branching Strategies — Compare and apply: Feature Branching, Git Flow, Trunk-Based Development.
-
git rebasevsgit merge— Understand fast-forward merges, 3-way merges, interactive rebase (git rebase -i HEAD~nfor squash/reword), and the golden rule: never rebase public shared branches. - Advanced Git Operations:
git cherry-pick,git stash,git reflog. - Conflict Resolution — Reading conflict markers (
<<<<<<<,=======,>>>>>>>), resolving with diff tools, and finishing merges/rebases. - Pull Requests & Code Reviews — Writing descriptive PR templates, atomic commits, requesting reviews, and conducting constructive code reviews.
-
.gitignoreBest Practices — Excluding compiled binaries (target/,.next/,node_modules/), OS artifacts (.DS_Store), and secrets (.env*). - Conventional Commits — Standardizing commit messages (
feat:,fix:,refactor:,docs:,chore:,test:) for automated changelogs and semantic versioning.
Linux Basics (For DevOps)
Essential command-line proficiency for operating, configuring, and debugging remote Linux production servers and containers.
- File System Navigation —
ls -lah,cd,pwd,find /path -name "*.log" -mtime -7,tree. - File Operations & Text Processing: Viewing:
cat,head,tail,less. Searching & Parsing:grep,awk,sed. Archiving:tar. - Permissions & Ownership —
chmod(numeric755,644, symbolicu+x),chown user:group file,sudo,umask. - Process Management & System Monitoring —
ps aux,top,htop,kill,systemctl,journalctl. - Networking Tools —
curl -I https://api.example.com,wget,netstat -tuln,ss -tulpn,ping,nslookup,lsof -i :8080. - SSH Basics — Generating SSH key pairs (
ssh-keygen -t ed25519), copying keys (ssh-copy-id user@host), configuring~/.ssh/config, port forwarding (ssh -L 5432:localhost:5432 user@remote). - Shell Scripting — Writing bash automation scripts (
#!/usr/bin/env bash), variables, exit codes (set -e), conditionals, loops, and passing arguments.
Docker & Multi-Container Orchestration
Package applications into lightweight, isolated, reproducible containers.
- Containers vs Virtual Machines — Namespaces, cgroups, shared host kernel vs hypervisor guest OS overhead, immutability, and container lifecycle.
- Dockerfile Instructions — Master syntax:
FROM,WORKDIR,COPY,ADD,RUN,ENV,ARG,EXPOSE,ENTRYPOINT,CMD,USER. -
.dockerignore— Preventing local build artifacts (target/,.git,node_modules) from polluting build contexts. - Docker CLI Essentials: Build, Run, Inspect & Debug, Clean up.
- Port & Volume Mapping: Port mapping, Named volumes for persistence, Bind mounts for local development.
- Multi-Stage Builds — Drastically reduce image size by separating build tools from the runtime image.
- Dockerize Next.js App — Multi-stage standalone output Dockerfile for Next.js 14+ (
node:20-alpine). - Docker Compose (
docker-compose.yml) — Multi-container local development stack configurations. - Complete Fullstack Stack Orchestration — Define and run Spring Boot + Next.js + PostgreSQL + MongoDB + Redis + Kafka + Zookeeper/Kraft in a unified Compose network.
- Docker Hub & Registries — Tagging images, authentication (
docker login), and pushing/pulling images (docker push <username>/<image>:<tag>).
CI/CD (Continuous Integration & Continuous Deployment)
Automate testing, container building, and deployment pipelines.
- GitHub Actions Workflows — Directory structure (
.github/workflows/*.yml), trigger events (push,pull_request,workflow_dispatch, branch filtering). - Workflow Anatomy — Runners (
runs-on: ubuntu-latest), jobs, matrix strategies, dependency caching (actions/cache,setup-java,setup-node), and action steps (uses: actions/checkout@v4). - Automated Testing in CI — Running JUnit tests with Maven/Gradle and Jest/Vitest with npm/pnpm on every pull request.
- Secrets & Environments — Storing sensitive tokens (
DOCKER_HUB_TOKEN,AWS_ACCESS_KEY_ID,DATABASE_URL) securely in GitHub Repository Secrets. - Full Build-Test-Publish Pipeline — Complete YAML for testing and pushing Docker images to Docker Hub.
Cloud Deployment (AWS & Vercel)
Deploy your fullstack multi-tier application to modern cloud providers.
- Cloud Fundamentals — IaaS (Infrastructure as a Service), PaaS (Platform as a Service), and SaaS (Software as a Service) models and trade-offs.
- AWS Core Services: EC2, S3, RDS, IAM, ECS / Elastic Beanstalk.
- Deploying Spring Boot to Cloud — Deploying containerized Spring Boot via AWS EC2/ECS or Render/Railway.
- Deploying Next.js to Vercel — Git-integrated zero-config deployments, preview environments, and environment variable configuration.
- Domain & SSL/TLS Configuration — DNS records (
A,CNAME), Let's Encrypt / AWS Certificate Manager (ACM), and configuring HTTPS reverse proxy with Nginx or Cloudflare.