Sobes.tech
Junior

Docker Compose менен кандай тажрыйбаңыз бар?

sobes.tech AI

AIден жооп

Мен Docker Compose колдонуп жатам көпконтейнердүү тиркемелерди аныктоо жана иштетүү үчүн. Тажрыйбам:

  • Жергиликтүү чөйрөнү өнүктүрүү: docker-compose.yml түзүү бардык зарыл кызматтарды (backend, frontend, маалымат базасы, кэш) жергиликтүү иштеп чыгуу үчүн иштетүү. Бул чөйрөнү тез көтөрүүгө мүмкүндүк берет, негизги системеден бөлөк.
  • Тестирлөө: Docker Compose колдонуу аркылуу ар кандай конфигурациялар менен тест чөйрөлөрүн түзүү.
  • Staging/Productionке жайгаштыруу: Эгерде Production үчүн көбүрөөк күчтүү оркестраторлор (Kubernetes) колдонулса да, алгачкы этаптарда же кичинекей долбоорлор үчүн Docker Compose колдонуп, Staging-серверлерге жайгаштырганмын.

docker-compose.yml файлынын өрөөндөрүн колдонуу мисалдары:

  • services: Контейнерлердин топтомун аныктоо.
  • image: Docker образын көрсөтүү.
  • build: Dockerfile аркылуу образ түзүү.
  • ports: Портторду түзүү.
  • volumes: Маалымат сактоо үчүн томдорду монтаждоо же булак кодун монтаждоо.
  • networks: Колдонуучу тармактарды аныктоо.
  • depends_on: кызматтардын ортосундагы көзкарандычылыктарды орнотуу.
  • environment: Контейнерге чөйрө өзгөрмөлөрүн өткөрүү.

Жөнөкөй конфигурациянын мисалы веб-колдонмо жана маалымат базасы үчүн:

services:
  webapp:
    build: ./webapp # Dockerfile аркылуу webapp каталогунан куруу
    ports:
      - "80:80" # Хосттун 80 порту контейнердин 80 портуна түзүлөт
    environment:
      DATABASE_URL: postgresql://user:password@db:5432/mydb # Чөйрө өзгөрмөсүн өткөрүү
    depends_on:
      - db # Веб-колдонмо маалымат базасына көзкаранды

  db:
    image: postgres:13 # PostgreSQL образын колдонуу
    volumes:
      - db_data:/var/lib/postgresql/data # Маалыматтарды сактоо
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
      POSTGRES_DB: mydb

volumes:
  db_data: # Аты бар томду аныктоо

Типтүү командалар:

docker compose up -d # Кызматтарды фон режиминде иштетүү
ndocker compose down # Токтотуу жана кызматтарды өчүрүү
docker compose build # Образдарды куруу
docker compose logs <service_name> # Тиешелүү кызматтын логдорун көрүү
docker compose exec <service_name> <command> # Контейнер ичинде команда иштетүү

Мен синтаксис версияларын жана алардын айырмачылыктарын билем. .env файлдарын колдонуп, чөйрө өзгөрмөлөрүн башкарууну жана профилдерди колдонуп, ар кандай кызмат топтомдорун иштетүүнү түшүнөм.