1.1 Docker Compose Əsas Konsepsiyaları
Docker Compose — çox konteynerli Docker tətbiqlərini müəyyənləşdirmək və işə salmaq üçün bir vasitədir. Bunun vasitəsilə tətbiq arxitekturasını sadə bir mətn faylı ilə asanlıqla təsvir edə və daha sonra bütün konteynerləri, servisləri və şəbəkələri idarə edə bilərsiniz.
Docker Compose Əsas Konsepsiyaları
- Servislərin müəyyənləşdirilməsi: Docker Compose tətbiqin bütün komponentlərini, məsələn, web serverləri, məlumat bazalarını, cache və digər servisləri bir konfiqurasiya faylı ilə müəyyən etməyə imkan verir.
- Çox konteynerli tətbiqlər: Compose, bir neçə konteynerdən ibarət olan tətbiqlərin qurulmasını sadələşdirir və onların koordinasiyasını və qarşılıqlı əlaqəsini təmin edir.
- Proseslərin avtomatlaşdırılması: Compose ilə konteynerlərin yerləşdirilməsi, idarə olunması və genişlənməsi proseslərini avtomatlaşdırmaq mümkündür.
Docker Compose Nəyə Lazımdır?
- Çətin tətbiqlərin idarə edilməsini sadələşdirir: Müasir tətbiqlərdə tez-tez müxtəlif konteynerlərdə işləyən bir neçə xidmət istifadə olunur. Docker Compose bu xidmətlərin idarə edilməsini asanlaşdırır.
- Mühitin konsistensiyası: Docker Compose inkişaf, test və istehsalat üçün eyni mühit konfiqurasiyasını təmin edir, bu da konfiqurasiya fərqləri ilə bağlı səhvlərin qarşısını alır.
- İnkişafı sürətləndirir: Compose ilə bütün lazım olan xidmətləri bir komanda ilə asanlıqla başlatmaq və dayandırmaq mümkündür, bu da inkişaf və test prosesini sürətləndirir.
- Miqyaslama: Docker Compose xidmətləri asanlıqla miqyaslandırmağa, yəni konteynerlərin sayını ehtiyaca uyğun artırmağa imkan verir.
Vacibdir!
Əvvəllər Docker Compose ayrıca bir tətbiq idi və bütün komandalar "docker-compose ..." sözləri ilə başlayırdı. Amma Docker 20 və daha yüksək versiyalarında Docker Compose artıq daxil edilmişdir. Onun komandaları "docker compose ..." sözləri ilə başlayır.
Buna görə bəzən internetdə köhnə "docker compose" yazılışlarını, bəzən isə yeni "docker compose" yazılışlarını görəcəksiniz. Narahat olmayın, onların hər ikisi eyni cür işləyir.
1.2 Docker Compose-un iş prinsipləri
Docker Compose konfiqurasiya faylı docker-compose.yml
-dan istifadə edir, burada tətbiq üçün lazım olan bütün servislər, həcm (volume) və şəbəkələr (network) müəyyən edilir. Bu faylda hansı image-lərin istifadə olunacağı, hansı komandaların icra ediləcəyi, hansı portların açılacağı və servislərin bir-biri ilə necə qarşılıqlı fəaliyyət göstərəcəyi təsvir olunur.
docker-compose.yml
faylının nümunəsi
Gəlin Node.js-də web serverdən və MongoDB məlumat bazasından ibarət sadə bir tətbiq nümunəsinə baxaq.
version: '3'
services:
web: image: node:14 working_dir: /app volumes: - .:/app ports: - "3000:3000" depends_on: - db command: npm start
db: image: mongo:latest ports: - "27017:27017" volumes: - mongo-data:/data/db
volumes:
mongo-data:
Bu nümunədə iki servis müəyyən edilib: web
və db
.
-
web
: Node.js image-dən istifadə edir, cari direktorianı konteynerə montaj edir, 3000 portunu açır vənpm start
komandasını işə salır. Həmçinin,db
servisindən asılıdır. -
db
: MongoDB image-dən istifadə edir, 27017 portunu açır və məlumatların saxlanması üçün həcm yaradır.
1.3 Docker Compose Əsas Əmrlər
1. Tətbiqin işə salınması
Bu əmr docker-compose.yml
faylını oxuyur, orada müəyyən edilmiş bütün servisləri yaradır və işə salır.
docker compose up
2. Tətbiqin dayandırılması
Bu əmr docker compose up
istifadə edərək yaradılmış bütün konteynerləri, şəbəkələri və həcmləri dayandırır və silir.
docker compose down
3. Loglara baxış
Bu əmr bütün servislərin loglarını göstərir ki, bu da tətbiqi rahat şəkildə de-bagg etməyə imkan verir.
docker compose logs
4. Servislərin yenidən işə salınması
Bu əmr bütün servisləri və ya müəyyən edilmiş servisləri yenidən işə salır, bu da koda və ya konfiqurasiyalara dəyişikliklər etdikdə faydalıdır.
docker compose restart
1.4 Docker Compose İstifadəsi
Docker Compose istifadəsinin üstünlükləri
- Asan tətbiq etmə: Docker Compose ilə mürəkkəb bir tətbiqi bir əmrlə işə salmaq olar.
- Asılılıqların idarə edilməsi: Compose avtomatik olaraq servislər arasındakı asılılıqları idarə edir və onların düzgün ardıcıllıqla başlatılmasını təmin edir.
- Servislərin izolyasiyası: Hər bir servis öz konteynerində işləyir, bu da izolyasiyanı təmin edir və servislər arasında konflikt riskini azaldır.
- Elastiklik: Docker Compose fərqli konfiqurasiyaları dəstəkləyir, məsələn, inkişaf, test və istehsal üçün, bu da mühitlərin idarə olunmasını asanlaşdırır.
Docker Compose tətbiqi
Docker Compose geniş şəkildə istifadə olunur:
- İnkişaf üçün: Komanda üzvləri arasında paylaşması asan olan sabit inkişaf mühitinin yaradılmasını sadələşdirir.
- Test üçün: Proizvodstven mühitə identik olan test mühitini sürətlə yaratmağa imkan verir.
- İstehsal üçün: İstehsal mühitlərində çox konteynerli tətbiqlərin tətbiqini və idarəsini sadələşdirir.
GO TO FULL VERSION