Junior
Docker bilan tajribangiz qanday?
sobes.tech AI
AIdan javob
Dunyo bo'ylab turli loyihalarda Dockerni faol ravishda 5 yildan ortiq foydalanish.
Tajribaga quyidagilar kiradi:
- Dockerfile ishlab chiqish: Web, mikroservislar, ma'lumotlar bazalari va boshqalar uchun optimallashtirilgan va ko'p bosqichli Dockerfile'lar yaratish.
- Rasmlarni boshqarish: Docker Hub, shaxsiy repozitoriyalar (GitLab Registry, Nexus) bilan ishlash, belgilash, versiyalash, ishlatilmaydigan rasmlarni tozalash.
- Konteynerlar bilan ishlash: Ishga tushirish, to'xtatish, qayta ishga tushirish, holatini monitoring qilish, loglarni ko'rish, konteyner ichida buyruqlarni bajarish (
docker exec). - Docker Compose: Ko'p konteynerli ilovalarni aniqlash va ishga tushirish uchun, xizmatlarni orkestratsiya qilish, tarmoqlar va hajmlarni boshqarish.
- Docker tarmoqlari: Turli tarmoq drayverlarini (bridge, host, overlay) tushunish va sozlash, xizmatlarni izolyatsiya qilish uchun maxsus tarmoqlar yaratish.
- Docker hajmlari: Ma'lumotlarni saqlash, host va konteyner o'rtasida fayllarni almashish uchun nomlangan hajmlar va bind montajlardan foydalanish.
- Docker xavfsizligi: Konteynerlarni izolyatsiya qilish asoslarini tushunish, rootless Docker'dan foydalanish (mumkin bo'lsa), rasmlarni zaifliklar uchun skanerlash.
- CI/CD bilan integratsiya: Docker rasmlarini qurish va nashr qilishni CI/CD pipeline'lariga qo'shish (Jenkins, GitLab CI, GitHub Actions).
- Orkestratsiya (asosiy bilimlar): Kubernetes tamoyillarini umumiy tushunish (konteynerlarni joylashtirish, pody, replikatsiya, xizmatlar), minikube/Kind yordamida oddiy ilovalarni test qilish.
Docker Compose misollari:
# docker-compose.yaml
version: '3.8'
services:
app:
build: . # Joriy katalogdan rasmni qurish
ports:
- "80:80" # Hostning 80 portini konteynerning 80 portiga yo'naltirish
environment:
DATABASE_URL: postgres://user:password@db:5432/mydatabase # Muhit o'zgaruvchilari
depends_on:
- db # db xizmatiga bog'liqlik
db:
image: postgres:14 # Standart postgres rasmidan foydalanish
volumes:
- db_data:/var/lib/postgresql/data # Ma'lumotlar uchun doimiy hajm
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: password
POSTGRES_DB: mydatabase
volumes:
db_data: # Nomlangan hajmni ta'riflash