Docker konteynerlarini o'zlashtiring: Kengayuvchan va ko'chma ilovalarga yo'l
Docker nima va nega kerak?
Docker – bu oddiy vosita emas, balki dastur joylashtirishni butunlay o‘zgartirib yuboradi. "Mening mashinamda ishlaydi" degan muammo endi yo‘q bo‘ladi.
Docker sizning kodingizni, kutubxonalarni, ish muhitini va sozlamalarni bitta qutiga solib beradi. Natijada, lokalda yoki serverda bir xil ishlaydi. Zamonaviy jamoalar uchun shart.
Docker qanday muammoni hal qiladi?
An’anaviy usulda: MacBook’da yozdingiz, Linux serverga qo‘yganingizda buzildi. Hamkoringiz boshqa Python versiyasidan foydalanadi. Kutubxonalar mos kelmaydi.
Docker har joyda bir xil muhit yaratadi. Laptopda, CI/CD’da yoki production’da – hammasi o‘zgarishsiz. Ishonchli ishlatish uchun oltin qiymat.
Asosiy tushunchalar
Image va Container: Image – tayyor shablon, faqat o‘qish mumkin. Container – undan ishga tushgan nusxa. Class va object kabi.
Qatlamlar: Image qatlam-qatlam quriladi. Har bir o‘zgarish alohida saqlanadi. Yangilashda faqat o‘zgargan qism yuboriladi – tejamkor.
Registry: Docker Hub – tayyor imageni saqlash joyi. O‘zingiznikini yuklang yoki NameOcean cloud’da shaxsiy registry quring. To‘liq nazorat sizda.
Boshlash: Oddiy misol
Mana Node.js uchun Dockerfile:
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]
Alpine bazasi – kichik hajm. Dependency o‘rnatib, 3000-portni ochadi. Har qayerda bir xil ishlaydi.
Docker Compose: Bir nechta konteyner
Haqiqiy loyihada database, cache kerak. Compose hammasini boshqaradi:
version: '3.8'
services:
app:
build: .
ports:
- "3000:3000"
environment:
- DATABASE_URL=postgresql://postgres:password@db:5432/myapp
depends_on:
- db
db:
image: postgres:14
environment:
- POSTGRES_PASSWORD=password
docker-compose up – hammasi tayyor. Lokal test uchun ideal.
Production va o‘sish
Katta loyihada Kubernetes kerak. NameOcean hosting’da oddiy variantlar ham bor.
E’tibor bering:
- Optimallashtirish: Multi-stage build bilan dev dependency’larni olib tashlang.
- Xavfsizlik: Image’larni skanerlang.
- Resurslar: CPU va RAM chegarasini qo‘ying.
- Log va monitoring: Markaziy log saqlang.
Vibe Coding foydasi
NameOcean’ning Vibe Hosting bilan AI vositalari kuchayadi. Butun muhitni konteynerlang – AI kod tahlil qiladi, taklif beradi. Natija aniqroq.
Xatolardan saqlaning
- Root foydalanmang – oddiy user yarating.
- Sirlarni (API key) image’ga yozmang – environment yoki secret tool ishlat.
- Hammasini bitta konteynerga solmang – microservices qiling.
.dockerignoreunutma – keraksiz fayllarni chiqarib tashla.
Keyingi qadam
Docker – zamonaviy dev uchun majburiy. Kichik loyihadan boshlang, registry’ga yuklang, deploy qiling. Ishonch va tezlikni his qilasiz.
O‘rganing – kelajakdagi o‘zingiz rahmat aytadi.