1.1 Volumes
Docker-də məlumatların saxlanması konteynerlərlə işləməyin vacib hissəsidir. Konteynerlər özləri müvəqqətidirlər, bu o deməkdir ki, onların içindəki məlumatlar konteyner dayandırıldıqdan və ya silindikdən sonra itiriləcək. Məlumatları müxtəlif işə salmalarda saxlamaq və onların uzunmüddətli saxlanmasını təmin etmək üçün Docker iki əsas texnologiya təqdim edir: volumes və bind mounts.
Volumes
Volumes — Docker tərəfindən idarə olunan məlumat saxlama resurslarıdır. Onlar konteynerlərin həyat dövründən asılı olmayaraq mövcuddur, bu da onları uzunmüddətli məlumat saxlama üçün istifadə etməyə imkan verir. Volumes Docker tərəfindən asanlıqla yaradılıb idarə oluna bilir, konteynerlərin xaricində məlumat saxlamaq üçün əlverişli bir üsul təqdim edir.
Volumes istifadəsinin üstünlükləri
- Hostdan izolyasiya: Volumes hostda Docker tərəfindən idarə olunan xüsusi bir qovluqda saxlanılır ki, bu da onların izolyasiyasını təmin edir.
- İdarəetmənin asanlığı: Docker volumes yaratmaq, silmək və idarə etmək üçün rahat komandalar təqdim edir.
- Uyğunluq və daşınma: Volumes asanlıqla müxtəlif hostlar arasında köçürülə və müxtəlif konteynerlərlə istifadə oluna bilər.
Volumes yaratmaq və istifadə üçün nümunə
Volume yaratmaq:
docker volume create my_volume
Volume-nı konteynerdə istifadə:
Bu nümunədə my_volume
volume-u konteynerin /data
direktoryasına my_container
daxilində montaj olunur.
docker run -d --name my_container -v my_volume:/data nginx
1.2 Bağlı direktoryalar (Bind Mounts)
Bağlı direktoryalar hostun müəyyən direktoryalarını konteynerlərə montaj etməyə imkan verir. Bu, konteynerlərin hostda olan fayl və direktoryalardan istifadə etməsinə imkan yaradır ki, bu da inkişaf və test zamanı, yerli fayllardan istifadə etmək lazım olduğu hallarda əlverişli olur.
Bağlı direktoryaların istifadəsinin üstünlükləri:
- Host fayllarına birbaşa giriş: Konteynerlər birbaşa hostda olan fayl və direktoryalardan istifadə edə bilirlər.
- İnkişaf rahatlığı: İnkişafçılar hostda faylları asanlıqla dəyişdirə və bu dəyişiklikləri konteynerlərdə real vaxtda görə bilərlər.
- Çeviklik: Bağlı direktoryalar hostdakı istənilən direktorya ola bilər, bu da məlumatların idarə edilməsində daha böyük çeviklik təmin edir.
Bağlı direktoryaların istifadəsinə misal
Bağlı direktorya ilə konteynerin işə salınması:
docker run -d --name my_container -v /path/on/host:/data nginx
Bu misalda /path/on/host
hostdakı direktorya konteynerin içində /data
direktoryasına montaj edilir və konteynerin adı my_container
olur.
Volume-larla bağlı direktoryaların müqayisəsi:
Xüsusiyyət | Volume-lar | Bağlı direktoryalar |
---|---|---|
Data saxlanması | Docker tərəfindən idarə olunur | İstifadəçi tərəfindən idarə olunur |
İzolyasiya | Hostun fayl sistemindən izolyasiya olunub | Hostun fayl sistemindən istifadə edir |
Performans | Docker üçün optimallaşdırılıb | Hostun fayl sistemindən asılıdır |
Tətbiq olunma | Uzunmüddətli data saxlanması | İnkişaf və test |
1.3 Praktiki nümunələr
İstifadə nümunələri
Nümunə 1: Verilənlər bazası üçün volume istifadəsi
Verilənlər bazasının məlumatlarını uzunmüddətli saxlamaq üçün volume-lərdən istifadə etmək olar.
Volume yaradılması:
docker volume create db_data
Verilənlər bazası konteynerinin volume ilə işə salınması:
docker run -d --name postgres -e POSTGRES_PASSWORD=mysecretpassword -v
db_data:/var/lib/postgresql/data postgres
Nümunə 2: Web inkişafı üçün bind mount istifadəsi
Web tətbiqi inkişafı zamanı lokal fayllardakı dəyişikliklərin dərhal konteynerdə əks olunması üçün bind mount-lardan istifadə etmək olar.
Bind mount ilə konteynerin işə salınması:
docker run -d --name web_dev -v $(pwd)/my_website:/usr/share/nginx/html nginx
Bu nümunədə cari işçi qovluq my_website
konteynerin qovluğuna /usr/share/nginx/html
nginx konteynerində montaj edilir.
GO TO FULL VERSION