Sobes.tech
Junior

Docker Compose bilan tajribangiz qanday?

sobes.tech AI

AIdan javob

Men ko‘p konteynerli ilovalarni aniqlash va ishga tushirish uchun Docker Compose’dan foydalanaman. Tajribam quyidagilarni o‘z ichiga oladi:

  • Mahalliy muhitni rivojlantirish: docker-compose.yml faylini yaratish orqali barcha zarur xizmatlarni (backend, frontend, ma'lumotlar bazasi, cache) ishga tushirish. Bu muhitni asosiy tizimdan ajratilgan holda tezda yaratishga imkon beradi.
  • Test qilish: Docker Compose yordamida turli konfiguratsiyalarga ega test muhitlarini yaratish.
  • Staging/Productionga joylashtirish: Garchi ishlab chiqarishda ko‘pincha kuchliroq orkestratorlar (Kubernetes kabi) ishlatilsa-da, dastlabki bosqichlarda yoki kichik loyihalar uchun Docker Compose staging serverlariga joylashtirish uchun ishlatilgan.

docker-compose.yml faylida maydonlarning ishlatilishi misollari:

  • services: Konteynerlar to‘plamini aniqlash.
  • image: Docker obrazini ko‘rsatish.
  • build: Dockerfile’dan obrazni qurish.
  • ports: portlarni xaritalash.
  • volumes: ma’lumotlarni saqlash yoki manba kodini ulash uchun hajmlarni montaj qilish.
  • networks: maxsus tarmoqlarni aniqlash.
  • depends_on: xizmatlar o‘rtasidagi bog‘liqliklarni o‘rnatish.
  • environment: konteynerga muhit o‘zgaruvchilarini uzatish.

Web ilova va ma’lumotlar bazasi uchun oddiy konfiguratsiya misoli:

services:
  webapp:
    build: ./webapp # webapp katalogidagi Dockerfile’dan qurish
    ports:
      - "80:80" # hostning 80 portini konteynerning 80 portiga xaritalash
    environment:
      DATABASE_URL: postgresql://user:password@db:5432/mydb # muhit o‘zgaruvchisi
    depends_on:
      - db # Web ilova ma’lumotlar bazasiga bog‘liq

  db:
    image: postgres:13 # PostgreSQL obrazidan foydalanish
    volumes:
      - db_data:/var/lib/postgresql/data # ma’lumotlarni saqlash
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
      POSTGRES_DB: mydb

volumes:
  db_data: # nomlangan hajmni aniqlash

Tavsiya etilgan buyruqlar:

docker compose up -d # xizmatlarni fon rejimida ishga tushurish
docker compose down # xizmatlarni to‘xtatish va o‘chirish
docker compose build # obrazlarni qurish
docker compose logs <service_name> # xizmatning loglarini ko‘rish
docker compose exec <service_name> <command> # konteyner ichida buyruq bajarish

Compose sintaksisining turli versiyalarini va ularning farqlarini bilaman. .env fayllaridan muhit o‘zgaruvchilarini boshqarish va turli xizmat to‘plamlarini ishga tushirish uchun profillarni qanday qo‘llashni tushunaman.