Docker kursi

"Mening kompyuterimda ishlaydi" muammosiga barham. Konteynerlar, Dockerfile, Compose va loyihani serverga chiqarish.

Boshlang'ich → O'rta · 45 ta dars · ~6 hafta

Mavzular: Image va konteyner, Dockerfile, Qatlamlar va kesh, Multi-stage build, Volume, Tarmoq, Docker Compose, Node, PHP, Python loyihalar, Xavfsizlik, CI/CD va deploy

Kirish

  1. Docker nima? — konteyner, virtual mashinadan farqi
  2. O'rnatish — Docker Desktop, Linux, WSL 2
  3. Birinchi konteyner — docker run hello-world, nginx
  4. Image va konteyner — farqi, hayot sikli
  5. Docker Hub — tayyor image lar, teglar, rasmiy image lar

Konteynerlar bilan ishlash

  1. docker run — -d, --name, --rm, -it
  2. Boshqaruv — ps, stop, start, rm, prune
  3. Ichiga kirish va loglar — exec, logs, inspect
  4. Portlar — -p, konteynerga brauzerdan kirish
  5. Muhit o'zgaruvchilari — -e, --env-file
  6. 1-2 bo'lim mashqlari — MySQL va Adminer konteynerda

Dockerfile — o'z image ingiz

  1. Dockerfile asoslari — FROM, COPY, RUN, CMD, docker build
  2. Instruksiyalar — WORKDIR, ENV, ARG, EXPOSE, USER, ENTRYPOINT
  3. Qatlamlar va kesh — tez build uchun tartib
  4. .dockerignore — keraksiz fayllarni chiqarib tashlash
  5. Multi-stage build — kichik va xavfsiz image
  6. Image ni optimallash — alpine, slim, distroless
  7. 3-bo'lim mashqlari — Node.js API uchun Dockerfile

Ma'lumotlarni saqlash

  1. Volume — konteyner o'chsa ham ma'lumot qoladi
  2. Bind mount — kodni konteynerga ulash, hot reload
  3. Volume backup va tiklash, tmpfs
  4. Ma'lumotlar bazasi konteynerda — MySQL, PostgreSQL, init skriptlar

Tarmoq

  1. Docker tarmog'i — bridge, host, none
  2. O'z tarmog'ingiz — konteynerlar nom bilan topishadi
  3. Tarmoq izolyatsiyasi — nimani tashqariga ochish kerak

Docker Compose

  1. Docker Compose nima — bir buyruqda butun loyiha
  2. compose.yaml — services, ports, volumes, networks
  3. depends_on va healthcheck — ishga tushish tartibi
  4. Compose da o'zgaruvchilar — .env, env_file, secrets
  5. Ishlab chiqish uchun Compose — hot reload, watch
  6. Bir nechta muhit — override fayllar va profiles
  7. 6-bo'lim mashqlari — Node.js + MySQL + Redis

Real loyihalar

  1. Node.js / NestJS loyihasini Docker ga o'tkazish
  2. PHP va Laravel — PHP-FPM, Nginx, Composer
  3. Python — FastAPI / Django konteynerda
  4. React / Vite frontend — build va Nginx bilan berish
  5. Reverse proxy — Nginx / Caddy, domen va HTTPS

Production

  1. Registry — Docker Hub, GHCR ga image yuklash, teglash
  2. Xavfsizlik — root siz, maxfiy ma'lumotlar, image skanerlash
  3. Resurslar — xotira va CPU chegarasi, restart siyosati
  4. CI/CD — GitHub Actions bilan avtomatik build
  5. VPS ga deploy — serverga o'rnatish va yangilash
  6. Loglar va monitoring — logging driver, stats, Uptime

Keyingi qadam

  1. Kubernetes ga kirish — qachon Docker yetmaydi
  2. Yakuniy loyiha — to'liq stack ni konteynerlash va deploy