Docker-in öyrənilməsi, 6-cı hissə: Məlumatlarla işləmək

Docker haqqında bir sıra materialların tərcüməsinin bugünkü hissəsində biz verilənlərlə işləmək haqqında danışacağıq. Xüsusilə, Docker həcmləri haqqında. Bu materiallarda biz daim Docker proqramlaşdırma mexanizmlərini müxtəlif yeməli analogiyalarla müqayisə etdik. Biz burada bu ənənədən kənara çıxmayacağıq. Qoy Docker-dəki məlumatlar ədviyyat olsun. Dünyada çoxlu ədviyyatlar var və Docker-in məlumatlarla işləmək üçün bir çox yolu var.

1-ci hissə: Əsaslar
2-ci hissə: terminlər və anlayışlar
Hissə 3: Dockerfiles
4-cü hissə: Şəkillərin ölçüsünü azaltmaq və onların yığılmasını sürətləndirmək
5-ci hissə: əmrlər
6-cı hissə: verilənlərlə işləmək

Docker-in öyrənilməsi, 6-cı hissə: Məlumatlarla işləmək

Nəzərə alın ki, bu material Docker mühərrikinin 18.09.1 ​​versiyası və API versiyasından istifadə etməklə hazırlanmışdır 1.39.

Docker-də məlumatlar müvəqqəti və ya daimi olaraq saxlanıla bilər. Müvəqqəti məlumatlarla başlayaq.

Məlumatların müvəqqəti saxlanması

Docker konteynerlərində müvəqqəti məlumatları idarə etməyin iki yolu var.

Varsayılan olaraq, konteynerdə işləyən proqram tərəfindən yaradılan fayllar yazıla bilən konteyner qatında saxlanılır. Bu mexanizmin işləməsi üçün xüsusi bir şey konfiqurasiya edilməməlidir. Ucuz və şən çıxır. Tətbiq sadəcə məlumatları saxlamalı və öz işini görməyə davam etməlidir. Bununla belə, konteyner mövcud olmağı dayandırdıqdan sonra belə sadə bir şəkildə saxlanılan məlumatlar da yox olacaq.

Docker-də müvəqqəti fayl saxlama standart müvəqqəti məlumat saxlama mexanizmindən istifadə etməklə əldə edilə bilənlərlə müqayisədə daha yüksək performans səviyyəsinin tələb olunduğu hallar üçün uyğun olan başqa bir həlldir. Məlumatlarınızın konteynerin mövcud olduğundan daha uzun müddət saxlanılmasına ehtiyacınız yoxdursa, tmpfs konteynerinə qoşula bilərsiniz - hostun RAM-dan istifadə edən müvəqqəti məlumat anbarı. Bu, məlumatların yazılması və oxunması əməliyyatlarının icrasını sürətləndirəcək.

Tez-tez olur ki, konteyner mövcud olmağı dayandırdıqdan sonra belə məlumatların saxlanması lazımdır. Bunun üçün bizə davamlı məlumat saxlama mexanizmləri lazımdır.

Davamlı məlumat saxlama

Məlumatın ömrünü konteynerin istifadə müddətindən daha uzun etməyin iki yolu var. Bir yol bağlama montaj texnologiyasından istifadə etməkdir. Bu yanaşma ilə, məsələn, konteynerə real həyat qovluğu quraşdıra bilərsiniz. Docker-dən kənar proseslər də belə bir qovluqda saxlanılan məlumatlarla işləyə biləcək. belədir baxmaq tmpfs montaj və bağlama texnologiyası.

Docker-in öyrənilməsi, 6-cı hissə: Məlumatlarla işləmək
Tmpf-lərin quraşdırılması və bağlama montajı

Bağlama montaj texnologiyasından istifadənin çatışmazlıqları ondan ibarətdir ki, onun istifadəsi verilənlərin ehtiyat nüsxəsini, məlumat miqrasiyasını, bir neçə konteyner arasında məlumat mübadiləsini çətinləşdirir. Davamlı məlumatların saxlanması üçün Docker həcmlərindən istifadə etmək daha yaxşıdır.

Cildlər Docker

Həcm, ana maşında konteynerlərdən kənarda yerləşən bir fayl sistemidir. Cildlər Docker tərəfindən yaradılır və idarə olunur. Docker həcmlərinin əsas xüsusiyyətləri bunlardır:

  • Onlar məlumatın daimi saxlanması vasitəsidir.
  • Onlar müstəqildirlər və konteynerlərdən ayrılırlar.
  • Onlar müxtəlif konteynerlər arasında paylaşıla bilər.
  • Onlar məlumatların səmərəli oxunmasını və yazılmasını təşkil etməyə imkan verir.
  • Həcmlər uzaq bulud provayderinin resurslarına yerləşdirilə bilər.
  • Onlar şifrələnə bilər.
  • Onlara ad vermək olar.
  • Konteyner məlumatlarla həcmin əvvəlcədən doldurulmasını təşkil edə bilər.
  • Onlar sınaq üçün əlverişlidir.

Gördüyünüz kimi, Docker həcmləri heyrətamiz xüsusiyyətlərə malikdir. Onları necə yaratmaq barədə danışaq.

Cildlərin yaradılması

Həcmlər Docker və ya API sorğularından istifadə etməklə yaradıla bilər.

Konteyneri işə salarkən həcm yaratmağa imkan verən Dockerfile-də təlimat budur.

VOLUME /my_volume

Bənzər bir təlimatdan istifadə edərkən, Docker, konteyner yaratdıqdan sonra, göstərilən yerdə artıq mövcud olan məlumatları ehtiva edən bir həcm yaradacaqdır. Nəzərə alın ki, Dockerfile istifadə edərək həcm yaratsanız, bu, sizi həcmin montaj nöqtəsini təyin etmək ehtiyacından azad etmir.

Siz həmçinin JSON formatından istifadə edərək Dockerfile-də həcmlər yarada bilərsiniz.

Bundan əlavə, konteyner işləyərkən komanda xətti alətlərindən istifadə edərək həcmlər yaradıla bilər.

Komanda xəttindən həcmlərlə işləmək

▍Həcmin yaradılması

Aşağıdakı əmrlə müstəqil bir həcm yarada bilərsiniz:

docker volume create —-name my_volume

▍Cildlər haqqında məlumat əldə edin

Docker həcmlərinin siyahısını görmək üçün aşağıdakı əmrdən istifadə edin:

docker volume ls

Bu kimi xüsusi bir həcmi araşdıra bilərsiniz:

docker volume inspect my_volume

▍Həcmin silinməsi

Siz belə bir həcmi silə bilərsiniz:

docker volume rm my_volume

Konteynerlər tərəfindən istifadə olunmayan bütün həcmləri silmək üçün aşağıdakı əmrə müraciət edə bilərsiniz:

docker volume prune

Cildləri silməzdən əvvəl Docker sizdən bu əməliyyatı təsdiq etməyinizi xahiş edəcək.

Əgər həcm konteynerlə əlaqələndirilirsə, müvafiq konteyner silinənə qədər həmin həcm silinə bilməz. Eyni zamanda, konteyner çıxarılsa belə, Docker bunu həmişə başa düşmür. Bu baş verərsə, aşağıdakı əmrdən istifadə edə bilərsiniz:

docker system prune

Docker resurslarını təmizləmək üçün nəzərdə tutulmuşdur. Bu əmri yerinə yetirdikdən sonra statusu daha əvvəl səhv olan cildləri silə bilməlisiniz.

--mount və --volume bayraqları

Cildlərlə işləmək üçün əmri çağırdığınız zaman docker, tez-tez bayraqlardan istifadə etməli olacaqsınız. Məsələn, konteynerin yaradılması zamanı həcm yaratmaq üçün bu konstruksiyadan istifadə edə bilərsiniz:

docker container run --mount source=my_volume, target=/container/path/for/volume my_image

Qədim dövrlərdə (2017-ci ilə qədər) bayraq məşhur idi --volume. Əvvəlcə bu bayraq (qısaldılmış formada da istifadə edilə bilər, sonra belə görünür -v) müstəqil konteynerlər və bayraq üçün istifadə edilmişdir --mount - Docker Swarm mühitində. Bununla belə, Docker 17.06 tarixindən etibarən bayraq --mount istənilən ssenaridə istifadə oluna bilər.

Qeyd etmək lazımdır ki, bayraqdan istifadə edərkən --mount əmrdə qeyd edilməli olan əlavə məlumatların miqdarı artır, lakin bir neçə səbəbə görə bu xüsusi bayraqdan istifadə etmək daha yaxşıdır. --volume. Bayraq --mount xidmətlərlə işləməyə və ya həcm sürücüsü seçimlərini təyin etməyə imkan verən yeganə mexanizmdir. Həm də bu bayraqla işləmək daha asandır.

Docker data manipulyasiya əmrlərinin mövcud nümunələrində bayrağın istifadəsinə dair bir çox nümunə görə bilərsiniz. -v. Bu əmrləri özünüzə uyğunlaşdırmağa çalışarkən, bayraqların olduğunu unutmayın --mount и --volume müxtəlif parametr formatlarından istifadə edin. Yəni sadəcə əvəz edə bilməzsiniz -v haqqında --mount və işçi komanda alın.

Arasındakı əsas fərq --mount и --volume bayraqdan istifadə edərkən --volume bütün parametrlər bir sahədə toplanır və istifadə edərkən --mount parametrləri ayrılır.

İlə işləyərkən --mount parametrlər açar-dəyər cütləri kimi təqdim olunur, yəni belə görünür key=value. Bu cütlər vergüllə ayrılır. Burada ən çox istifadə olunan variantlar var --mount:

  • type - montaj növü. Müvafiq açarın dəyəri ola bilər lər, həcm və ya tmpfs. Burada cildlərdən danışırıq, yəni dəyərlə maraqlanırıq volume.
  • source - montaj mənbəyi. Adlandırılmış cildlər üçün bu, cildin adıdır. Adsız cildlər üçün bu açar göstərilməyib. qədər qısaldıla bilər src.
  • destination - fayl və ya qovluğun konteynerə quraşdırıldığı yol. Bu açarı qısaltmaq olar dst və ya target.
  • readonly - nəzərdə tutulan həcmi quraşdırır yalnız oxumaq üçün. Bu açarın istifadəsi isteğe bağlıdır və ona heç bir dəyər təyin edilmir.

Budur istifadə nümunəsi --mount bir çox variantla:

docker run --mount type=volume,source=volume_name,destination=/path/in/container,readonly my_image

Nəticələri

Docker həcmləri ilə işləyərkən istifadə edə biləcəyiniz bəzi faydalı əmrlər bunlardır:

  • docker volume create
  • docker volume ls
  • docker volume inspect
  • docker volume rm
  • docker volume prune

Burada tez-tez istifadə olunan seçimlərin siyahısı verilmişdir --mount, forma əmrində tətbiq olunur docker run --mount my_options my_image:

  • type=volume
  • source=volume_name
  • destination=/path/in/container
  • readonly

İndi bu Docker seriyasını tamamladıqdan sonra Docker öyrənənlərinin növbəti dəfə hara gedə biləcəyi barədə bir neçə kəlmə deməyin vaxtı gəldi. Burada Docker haqqında əla məqalə. Burada Docker haqqında kitab (bu kitabı alarkən onun ən son nəşrini əldə etməyə çalışın). Burada təcrübənin texnologiyanı öyrənməyin ən yaxşı yolu olduğunu düşünənlər üçün başqa bir kitab.

Hörmətli oxucular! Yeni başlayanlara öyrənmək üçün hansı Docker materiallarını tövsiyə edərdiniz?

Docker-in öyrənilməsi, 6-cı hissə: Məlumatlarla işləmək

Mənbə: www.habr.com

Добавить комментарий