CodeGym /Kurslar /Docker SELF /Bind-lərin istifadəsi

Bind-lərin istifadəsi

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

5.1 Bağlanmış direktoriyaların (bind mounts) ideyası

Host direktoriyalarının konteynerlərə bağlanmış direktoriyalar (bind mounts) vasitəsilə montaj edilməsi — bu, konteynerlərin host sistemində yerləşən faylları və direktoriyaları birbaşa istifadə etməsinə imkan verən Docker-in güclü funksiyasıdır. Bu, xüsusilə inkişaf, test və sazlama üçün faydalıdır, çünki yerli faylları konteynerə kopyalamadan istifadə etməyə imkan verir. Bu mühazirədə bağlanmış direktoriyalardan necə istifadə olunacağını müzakirə edəcəyik, nümunələr və ən yaxşı təcrübələri təqdim edəcəyik.

Bağlanmış direktoriyalar konkret direktoriyaları və ya faylları host sistemindən konteynerlərə montaj etməyə imkan verir. Bu, Docker tərəfindən idarə olunan və xüsusi direktoriyada saxlanılan volume-lardan fərqlənir.

Bağlanmış direktoriyalardan istifadənin üstünlükləri

  1. Host fayllarına birbaşa çıxış: Konteynerlər hostda yerləşən faylları birbaşa istifadə edə və dəyişdirə bilərlər.
  2. İnkişaf rahatlığı: İnkişafçılar faylları hostda dəyişdirə bilər və bu dəyişiklikləri konteynerlərdə real vaxtda görə bilərlər.
  3. Elastiklik: Hostdakı istənilən direktoriyanı konteynerə montaj etmək olar.

Bağlanmış direktoriyaların montaj əmri

Bağlanmış direktoriyalar konteyner işə salındıqda -v və ya --mount parametrlərindən istifadə etməklə montaj edilir.

5.2 -v parametrlərinin istifadəsinə misallar

1. Host direktoriya-nın konteynerə montaj edilməsi

Host direktoriya-nın konteynerə montaj olunmasının sadə nümunəsi:

Terminal

docker run -d --name my_container -v /path/on/host:/path/in/container nginx 

Bu nümunədə host-da olan /path/on/host direktoriya nginx konteynerinin içindəki /path/in/container direktoriyasına montaj edilir.

2. Host fayl-nın konteynerə montaj edilməsi

Ayrıca müstəqil faylları da montaj edə bilərsiniz:

Terminal


docker run -d --name my_container -v /path/on/host/config.conf:/etc/nginx/nginx.conf nginx 

Bu nümunədə host-da olan config.conf konfiqurasiya faylı nginx konteynerinin içindəki nginx.conf konfiqurasiya faylı kimi montaj edilir.

5.3 --mount parametrlərinin istifadəsinə nümunələr

--mount parametri, fərqli parametrlər göstərmə imkanı ilə bağlanmış direktoriyaların montajı üçün daha ətraflı bir üsul təqdim edir.

1. --mount-dan istifadə ilə direktoriyanı montaj etmə

Terminal


docker run -d --name my_container --mount  type=bind,source=/path/on/host,target=/path/in/container nginx 

Bu nümunə -v ilə olan əvvəlki nümunəyə oxşardır, amma daha ətraflı sintaksis istifadə edir.

2. Yalnız oxuma rejimində montaj

Terminal

docker run -d --name my_container --mount 
type=bind,source=/path/on/host,target=/path/in/container,readonly nginx

Bu nümunədə direktoriyanın yalnız oxuma rejimində montaj edilməsi göstərilir, bu da konteynerdəki faylların dəyişdirilməsini qarşısını alır.

5.4 Praktik nümunələr

Web tətbiqi hazırlamaq üçün kodların yerləşdiyi direktoriyanı host-dan container-ə mount edə bilərsiniz.

Host-da mənbə kodunun olduğu direktoriyanın yaradılması:

Terminal

mkdir -p ~/my_web_app
echo "Hello, World!" > ~/my_web_app/index.html

Direktoriyanı mount edərək container-i işə salmaq:

Terminal


docker run -d --name web_dev -v ~/my_web_app:/usr/share/nginx/html nginx

İndi host-dakı ~/my_web_app direktoriyasında etdiyiniz istənilən dəyişiklik dərhal container-ə təsir edəcək.

Nümunə 2: Konfiqurasiya fayllarının istifadəsi

Host-dan bir direktoriyadan container-ə konfiqurasiya fayllarını mount edə bilərsiniz.

Host-da konfiqurasiya faylı yaradılması:

Terminal

echo "user www-data;" > ~/nginx.conf

echo "worker_processes auto;" >> ~/nginx.conf

Konfiqurasiya faylını mount edərək container-i işə salmaq:

Terminal


docker run -d --name nginx_custom -v ~/nginx.conf:/etc/nginx/nginx.conf nginx 

Bu nümunədə host-dakı Nginx konfiqurasiya faylı container daxilində istifadə olunur.

5.5 Montaj olunmuş direktoriyaları və faylları yoxlama

Montaj olunmuş direktoriyaların və faylların məzmununu yoxlamaq üçün konteyner daxilində əmrlər yerinə yetirən docker exec komandası istifadə edə bilərsiniz.

Nümunə

Direktoriyanın məzmununu yoxlama:

Terminal


docker exec -it my_container ls /path/in/container 

Faylın məzmununu yoxlama:

Terminal


docker exec -it my_container cat /path/in/container/config.conf 

Bağlanmış direktoriyaları silmək

Bağlanmış direktoriyalar birbaşa Docker tərəfindən idarə olunmur, buna görə də onların silinməsi hostun fayl sistemində həyata keçirilir.

Nümunə

Host üzərində bağlanmış direktoriyanı silmək:

Terminal

        
rm -r /path/on/host 
1
Опрос
Docker-da Data İdarəetməsi,  19 уровень,  4 лекция
недоступен
Docker-da Data İdarəetməsi
Docker-da Data İdarəetməsi
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION