CodeGym /Kurslar /Docker SELF /Həcm montajı

Həcm montajı

Docker SELF
Səviyyə , Dərs
Mövcuddur

8.1 Virtual disklərlə tanışlıq

Disklərin montajı — bu, Docker-in əsas funksiyasıdır və konteynerlərin host-maşının dataları ilə qarşılıqlı əlaqədə olmasına imkan yaradır. Bu funksiya dataların idarə edilməsində elastiklik və səmərəlilik təmin edir, uzunmüddətli saxlama, konteynerlər arasında data mübadiləsi və ehtiyat nüsxələmə və bərpa proseslərini asanlaşdırır.

Həcmlər (Volumes) Docker-də uzunmüddətli data saxlama mexanizmidir, bu, dataları konteynerlərdən kənarda saxlamağa imkan verir. Həcmlər konteynerlərə montaj olunur və dataların konteynerlərin həyat dövründən asılı olmamağını təmin edir. Hətta konteyner silinsə belə, həcmlərdə saxlanılan məlumatlar qalır.

Əsas növ həcmlər

  1. Anonim həcmlər (anonymous volumes)
    • o Docker konteyner üçün avtomatik olaraq yaradır, əgər açıq şəkildə həcm qeyd olunmasa.
    • o Müvəqqəti data saxlamaq üçün istifadə olunur.
  2. Adlandırılmış həcmlər (named volumes)
    • Docker tərəfindən yaradılır və idarə olunur.
    • o Bir neçə konteyner tərəfindən istifadə oluna bilər və konteynerlərin dayandırılması və ya silinməsindən sonra da qalır.
  3. Bağlantı həcmləri (bind mounts)
    • o Host-maşındakı kataloqları konteynerdəki kataloqlara bağlayır.
    • o Host sistemindəki məlumatlara giriş və inkişaf etdirilməsi üçün istifadə olunur.

Həcmlərin montajı üçün docker run komandasının əsas sintaksisi


-v <host_path>:<container_path>

Sintaksis:


docker run -v <host_path>:<container_path> [OPTIONS] IMAGE [COMMAND] [ARG...]

Həcmlərin montajı üçün əsas parametrlər

1. -v və ya --volume parametri

Adlandırılmış həcm və ya bağlantı həcmi yaradır.

Nümunə

Terminal


docker run -d -v /host/data:/container/data nginx

2. --mount parametri

Həcmlərin montajı üçün daha fleksibil və geniş imkanlar təqdim edir.

Nümunə

Terminal


docker run -d --mount type=bind,source=/host/data,target=/container/data nginx

8.2 Həcm yaratmaq və istifadə etmək

1. Adlandırılmış həcmlər

Adlandırılmış həcmlər Docker tərəfindən yaradılır və idarə olunur. Onlar konteynerlərin yenidən başladılması və ya silinməsi arasında saxlanılmalı olan məlumatların uzunmüddətli saxlanması üçün istifadə olunur.

Adlandırılmış həcmin yaradılması

1. Adlandırılmış həcmlər

Adlandırılmış həcmlər Docker tərəfindən yaradılır və idarə olunur. Onlar konteynerlərin yenidən başladılması və ya silinməsi arasında saxlanılmalı olan məlumatların uzunmüddətli saxlanması üçün istifadə olunur.

Adlandırılmış həcmin yaradılması

Terminal


docker volume create my_volume

Həcm montajı ilə konteynerin işə salınması

Bu nümunədə my_volume həcmi konteynerin içindəki /data adlı direktoryaya montaj edilir my_container. /dataya yazılmış bütün məlumatlar həcmdə saxlanılacaq və konteyner silindikdən sonra əlçatan qalacaq.

Terminal


docker run -d -v my_volume:/data --name my_container nginx

2. Anonim həcmlər

Anonim həcmlər Docker tərəfindən avtomatik yaradılır və konkret konteynerə bağlanılır. Onlar konteyner silindikdən sonra saxlanması lazım olmayan müvəqqəti məlumatlar üçün faydalıdır.

Anonim həcm ilə konteynerin işə salınması

Bu nümunədə Docker avtomatik olaraq anonim həcm yaradacaq və onu konteynerin içindəki /data adlı direktorya montaj edəcək.

Terminal


docker run -d -v /data --name my_container nginx

3. Qoşulan direktoryalar

Qoşulan direktoryalar host sisteminin direktoryalarını konteynerlərə montaj etməyə imkan verir. Bu, məlumatların konteynerlər və host sistemi arasında paylaşılması üçün, həmçinin inkişaf zamanı, mənbə kodunun host sistemində saxlanıldığı hallarda faydalıdır.

Qoşulan direktorya ilə konteynerin işə salınması

Bu nümunədə host maşınında olan /host/data adlı direktorya konteynerdəki /container/data adlı direktoryaya montaj edilir my_container.

Terminal


docker run -d -v /host/data:/container/data --name my_container nginx

8.3 Həcmlərin istifadəsi nümunələri

1. Məlumat bazası məlumatlarının saxlanması

Məlumat bazası məlumatlarının saxlanması üçün həcmlərdən istifadə, konteynerin yenidən işə salınması və ya yenilənməsi arasında məlumatların qorunmasını təmin edir.

Nümunə

Bu nümunədə PostgreSQL məlumatları db_data adlı həcmin içərisində saxlanır, bu da məlumatların konteynerin yenidən işə salınması və ya silinməsi zamanı qorunmasını təmin edir.

Terminal


docker volume create db_data
docker run -d -v db_data:/var/lib/postgresql/data --name postgres_container postgres

2. Konteynerlər arasında məlumatların birgə istifadəsi

Bəzən məlumatların bir neçə konteyner arasında paylaşılması lazım olur. Həcm bu prosesin asan şəkildə həyata keçirilməsini təmin edir.

Nümunə

Həcm yaradıb iki konteyner işə salaq, onlar bu həcmdən istifadə edəcək. Hər iki konteyner shared_data adlı həcmdəki məlumatlara çıxış əldə edəcək və bununla məlumat mübadiləsi təmin olunacaq.

Terminal


docker volume create shared_data
docker run -d -v shared_data:/data --name container1 nginx
docker run -d -v shared_data:/data --name container2 nginx

3. İnkişaf və test

Tətbiqlərin inkişafında host maşının kodu ilə konteyner arasında birgə istifadə üçün dirinqlərdən istifadə faydalıdır. Bu, tərtibatçılara hostdakı kod üzərində işləməsinə, konteynerə isə bu kodu istifadəsinə imkan verir.

Nümunə

Bu nümunədə host maşındakı /path/to/source adlı direktoriya konteyner içersindəki /app direktoriya ilə montaj edilir. Bu da dev_container adlı konteynerə host sistemdən birbaşa olaraq koddan istifadə etməyə imkan yaradır.

Terminal


docker run -d -v /path/to/source:/app --name dev_container node

8.4 Həcm İdarəsi

Docker həcm idarəsi üçün komandalar təqdim edir ki, bu da həcmləri asanlıqla yaratmağa, silməyə və onlar haqqında məlumatı nəzərdən keçirməyə imkan verir.

1. Bütün həcmlərin baxışı

Bu komanda host maşınında mövcud olan bütün həcmlərin siyahısını göstərəcək.

Terminal


docker volume ls 

2. Həcmdəki məlumatların baxışı

Bu komanda my_volume həcm haqqında ətraflı məlumat göstərəcək: onun host fayl sistemi üzərindəki yeri və hansı konteynerlərin bu həcmi istifadə etdikləri məlumatlar daxil olmaqla.

Terminal


docker volume inspect my_volume

3. Həcmin silinməsi

Bu komanda my_volume adlı həcmi siləcək. Önəmli olan, bu əməliyyatdan əvvəl heç bir konteynerin bu həcmi istifadə etmədiyindən əmin olmaqdır.

Terminal


docker volume rm my_volume 

8.5 Həcmlərin rezerv nüsxəsini yaratmaq

Məlumatların təhlükəsizliyini təmin etmək üçün həcmlərin rezerv nüsxəsini yaratmaq və ehtiyac olduqda onları bərpa etmək vacibdir.

1. Həcmin rezerv nüsxəsini yaratmaq

Bu nümunədə, my_volume həcminin məzmunu my_volume_backup.tar.gz faylında arxivlənir və host maşının /backup kataloqunda saxlanılır.

Terminal


docker run --rm -v my_volume:/volume -v /backup:/backup busybox tar czf /backup/my_volume_backup.tar.gz /volume

Həcmi bərpa etmək

Bu nümunədə my_volume həcminin məzmunu my_volume_backup.tar.gz faylında saxlanılan rezerv nüsxədən bərpa olunur.

Terminal

        
docker run --rm -v my_volume:/volume -v /backup:/backup busybox tar xzf 
/backup/my_volume_backup.tar.gz -C /volume
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION