Ev sahibi üzərindəki qovluğa volume və sadə bağlama (binding) arasındakı fərq nədir?
sobes.tech Süni İntellekt
AI-dan cavab
-
Həcmlər (Volumes): Həcminin həyat dövrü konteynerin həyat dövründən ayrıdır. Docker həcmlərin saxlanmasını host maşında idarə edir. Həcmlər Docker tərəfindən yaradılır, qoşulur və silinir və onların məlumatları konteyner dayandırılsa və ya silinsə belə saxlanılır. Bunlar davamlı məlumat saxlama, verilənlər bazaları və ya konteynerlər arasında paylaşılmış məlumatlar üçün idealdır.
-
Birbaşa host qovluğuna qoşulmalar (Bind Mounts): Host maşında olan qovluq və ya faylı konteyner daxilindəki qovluq və ya fayla birbaşa qoşur. Docker məlumatların saxlanmasını birbaşa idarə etmir, sadəcə qoşulma nöqtəsi yaradır. Bu nöqtədə konteynerin fayl sistemindəki dəyişikliklər hostda da əks olunur və əksinə. Bunlar üçün əlverişlidir:
- İnkişaf: Mənbə kodunu konteynerə qoşmaq və dəyişiklikləri dərhal əks etdirmək.
- Konfiqurasiya: Konfiqurasiya fayllarını hostdan konteynerə ötürmək.
- Host resurslarına giriş: Konteynerə hostdakı müəyyən fayl və ya qovluqlara giriş imkanı vermək.
Əsas fərqlər:
| Xüsusiyyət | Həcmi (Volume) | Hostda qoşulma (Bind Mount) |
|---|---|---|
| İdarəetmə | Docker tam idarə edir | Docker yalnız qoşulma nöqtəsini yaradır |
| Həyat dövrü | Konteynerdən ayrıdır | Host qovluğu və ya faylın mövcudluğuna bağlıdır |
| Performans | I/O üçün optimallaşdırılmış | Host fayl sisteminin performansından asılıdır |
| Daşıma qabiliyyəti | Dockerfile/Compose ilə daha çox daşına bilər | Daha az daşına bilər, host strukturundan asılıdır |
| İzolasiya | Hostdan daha yaxşı izolyasiya təmin edir | Host fayl sistemindən daha az izolyasiya olur |
Dockerfile-də həcm istifadəsi nümunəsi:
# Həcm istifadəsi
VOLUME /app/data
Konteyneri işə salarkən hostda qoşulma istifadə nümunəsi:
# Qovluğu qoşmaq
docker run -v /host/yolu:/konteynerdə/yol mənim_image
Konteyneri işə salarkən həcm istifadəsi nümunəsi:
# Adlandırılmış həcm istifadə
docker run -v mənimhəcmim:/konteynerdə/yol mənim_image