Docker is the container platform. Nearly every DevOps workflow uses it to package, ship and run applications. I use Docker to:

  • Package apps with their dependencies into portable images
  • Run isolated containers across homelab and production
  • Persist state with volumes and connect containers with networks
  • Ship images via registries (Docker Hub) into deployment pipelines
  • And much more

Docker konular#

  1. docker-kurulum-hardening-debian
  2. manage-docker-as-non-root-user
  3. docker-containers-images
  4. docker-volumes
  5. docker-build
  6. optimize-container-images-with-multi-stage-builds
  7. docker-network
  8. docker-exec-shell
  9. docker-logs
  10. docker-compose-basic
  11. var-olan-volume-uzerine-docker-compose
  12. docker-publish
  13. docker-kurulum-hardening-rocky
  14. docker-distroless-container-images

Temeller#

Build ve Publish#

  • docker-build = Dockerfile yazma, docker build -t, Go/Python server dockerize etme, ENV PORT
  • optimize-container-images-with-multi-stage-builds = Multi-stage build ile Go (~800MB+ → 15-20MB) ve TypeScript image optimizasyonu, COPY --from
  • docker-distroless-container-images = distroless image hiyerarşisi (staticbasecc → runtimes), FROM scratch karşılaştırması, trivy ile CVE taraması, :nonroot/:debug tag’leri, Chainguard/Chisel alternatifleri
  • docker-publish = Docker Hub’a docker push/pull, tag (latest vs semver), deployment pipeline

Compose ve Operasyon#