6.1 Şəkillər (Images)
Docker ilə effektiv işləmək üçün bir neçə əsas termini başa düşmək lazımdır: şəkillər, konteynerlər
və reyestrlər
. Bu mühazirədə biz bu terminlərin hər birini, onların rollarını və bir-biri ilə necə qarşılıqlı əlaqə qurduğunu ətraflı nəzərdən keçirəcəyik.
Docker şəkli — konteynerlərin yaradıldığı şablondur. Şəkil tətbiqin işləməsi üçün lazım olan bütün komponentləri ehtiva edir: əməliyyat sistemi, tətbiq, kitabxanalar və asılılıqlar, eləcə də konfiqurasiya faylları. Şəkillər Dockerfile vasitəsilə yaradılır — şəkli yaratma addımlarını təsvir edən mətn faylıdır.
Şəkillərin əsas xüsusiyyətləri:
- Təbəqəli struktur: Şəkillər bir neçə təbəqədən ibarətdir, harada ki, hər bir təbəqə əvvəlki ilə müqayisədə dəyişiklikləri təqdim edir. Bu, yaddaşa qənaət etməyə və yükləmə müddətini azaltmağa imkan verir.
- Təkrar istifadə olunma: Eyni şəkildən bir çox konteyner yaratmaq üçün istifadə edilə bilər.
- Daşınma qabiliyyəti: Şəkillər müxtəlif sistemlər arasında köçürülə bilər, bu da onları inkişaf, test və tətbiqləri fərqli mühitlərdə yerləşdirmək üçün ideal edir.
Şəkillərin istifadəsi üçün nümunələr:
Öz şəkilinizi yaratmaq: Siz Dockerfile yazaraq öz tətbiqinizi və onun asılılıqlarını necə qurmağı təsvir edərək öz şəkilinizi yarada bilərsiniz.
FROM ubuntu:latest
RUN apt-get update && apt-get install -y python3
COPY . /app
CMD ["python3", "/app/app.py"]
Hazır şəkildən istifadə: Siz Docker Hub-da mövcud olan şəkillərdən istifadə edərək, tez bir zamanda veb-serverlər və ya verilənlər bazaları kimi standart tətbiqləri yerləşdirə bilərsiniz.
docker pull nginx
Bu kod Docker Hub-dan sizin kompüterinizə nginx şəkilini yükləyir.
6.2 Konteynerlər (Containers)
Docker konteyneri — bu image-in işə salınmış nüsxəsidir. Konteynerlər tətbiqləri və onların asılılıqlarını ayrı bir icra mühitində izolə edir, bu da onların host sistemi və digər konteynerlərdən asılı olmadan işə salınmasına imkan verir. Konteynerlər yüngüldür, çünki onlar virtual maşınlar kimi ayrıca bir əməliyyat sistemi nüvəsi əvəzinə host əməliyyat sisteminin nüvəsini istifadə edir.
Konteynerlərin əsas xüsusiyyətləri:
- İzolasiya: Konteynerlər tətbiqləri izolə edir, onların müstəqil işləməsini təmin edir və asılılıqların konfliktinin qarşısını alır.
- Yüngüllük: Konteynerlər resurs baxımından daha az sərfiyyata malikdir, çünki ayrıca bir əməliyyat sistemi tələb etmir.
- Tez başlama: Konteynerlər virtual maşınlara nisbətən daha sürətli işə salınır və dayandırılır, bu da onları dinamik mühitlər və skalalama üçün ideal edir.
Konteynerlərin istifadə nümunələri:
Konteynerin işə salınması: Siz docker run komandasından istifadə edərək image-dən konteyner işə sala bilərsiniz.
docker run -d -p 80:80 --name mynginx nginx
Konteynerlərin idarəedilməsi: Docker start, stop, restart, rm və exec kimi konteynerlərin idarə edilməsi üçün komandalar təqdim edir.
docker stop mynginx
docker rm mynginx
Bütün komandalar və onların parametrləri haqqında növbəti mühazirələrdə öyrənəcəksiniz.
6.3 Registrlər (Registries)
Docker registr — bu, Docker image-lərinə görə depodur. Registrlər developer-lərə və təşkilatlara image-ləri saxlamaq, idarə etmək və yaymaq imkanı yaradır. İki növ registr mövcuddur: publik və özəl.
Registrlərin əsas xüsusiyyətləri:
- Publik registrlər: Publik registrlər, məsələn Docker Hub, icma və rəsmi developer-lər tərəfindən yaradılmış çox sayda image verir.
- Özəl registrlər: Özəl registrlər təşkilat daxilində image-ləri saxlamaq və idarə etmək üçün istifadə olunur. Onlar giriş nəzarəti və təhlükəsizliyi təmin edir.
- CI/CD ilə inteqrasiya: Registrlər, continuous integration və deployment sistemləri ilə asanlıqla birləşdirilir ki, bu da image-lərin yaradılması və yerləşdirilməsi prosesini avtomatlaşdırmağa imkan verir.
Registrlərin istifadə nümunələri:
1. Docker Hub: Çox sayda hazır image-yə çıxış edən publik registr.
docker pull nginx
docker push myusername/myimage:tag
2. Özəl registr: Docker Registry vasitəsilə şəxsi registrinizi quraşdırıb istifadə edə bilərsiniz.
docker run -d -p 5000:5000 --name registry registry:2
docker tag myimage localhost:5000/myimage
docker push localhost:5000/myimage
Image-lərin, konteynerlərin və registrlərin qarşılıqlı əlaqəsi
Bu üç komponent bir-biri ilə sıx bağlıdır və Docker ilə işin əsasını təşkil edir:
- Image yaradılması: Developer Dockerfile istifadə edərək image yaradır və onu lokalda saxlayır.
- Image-in registrə yüklənməsi: Image bir registrə (məsələn, Docker Hub və ya özəl registr) yüklənir və orada saxlanılır, digər istifadəçilər və ya sistemlər üçün əlçatandır.
- Konteynerin işə salınması: İstifadəçi image-i registrdən yükləyir və konteyneri işə salır, bu isə tətbiqi izolyasiya edir və onun icrasını təmin edir.
6.4 Orkestrasiya (Orchestration)
Orkestrasiya — paylanmış mühitdə bir çox konteynerin idarə olunması prosesidir. Orkestrasiya alətləri konteynerlərin yerləşdirilməsini, miqyaslandırılmasını və idarə edilməsini avtomatlaşdırmağa kömək edir.
- Kubernetes: Bu, müxtəlif nodelarda konteyner klasterini idarə etməyə imkan verən ən məşhur konteyner orkestrasiya platformasıdır.
- Docker Swarm: Docker-ə daxil olan orkestrasiya platformasıdır ki, Docker klasterlərini yaratmaq və idarə etmək asandır.
- Orkestrasiya funksiyaları: Avtomatik miqyaslandırma, özünü bərpa, şəbəkələrin idarə edilməsi və yük balanslaşdırılması.
6.5 Şəbəkələr (Networks)
Docker-də şəbəkələr konteynerlərin bir-biri ilə və xarici dünya ilə qarşılıqlı əlaqə qurmasına imkan verir. Docker müxtəlif istifadə ssenariləri üçün bir neçə növ şəbəkələr təqdim edir.
- Bridge: Docker tərəfindən yaradılan standart şəbəkə. Bridge şəbəkəsinə qoşulmuş konteynerlər bir-biri ilə ünsiyyət qura bilərlər.
- Host: Konteyner host maşınının şəbəkə interfeyslərindən istifadə edir. Bu, konteynerə hostun şəbəkə interfeyslərinə birbaşa çıxış imkanı verir.
- Overlay: Bir neçə Docker demonunu əhatə edən şəbəkələr yaratmaq üçün istifadə olunur. Orkestrasiya üçün faydalıdır.
- None: Konteyner üçün bütün şəbəkə interfeyslərini deaktiv edir, bu isə izolyasiya olunmuş tapşırıqlar üçün faydalıdır.
6.6 Həcmlər (Volumes)
Həcmlər (Volumes) — konteynerlərin məlumatlarını davamlı saxlamaq üçün mexanizmdir. Onlar məlumatları konteynerdən kənarda saxlamağa imkan verir, belə ki, konteyner yenidən başladıqda və ya silindikdə məlumat itirmir.
- Həcm yaratmaq: Həcmlər docker volume create komandası ilə yaradılır.
- Həcmi montaj etmək: Həcmlər konteynerlərə
-v
flaqı ilə montaj edilir konteyneri işə salarkən. - Üstünlüklər: Həcmlər məlumatları konteynerlər arasında asanlıqla saxlamağa və paylaşmağa imkan verir, həmçinin bağlı qovluqlara (bind mounts) nisbətən daha yaxşı performans təmin edir.
Vacibdir!
Həcm – bu, virtual sərt diskdir, hansı ki virtual maşına və ya konteynerə qoşula bilər. Adətən qonaq əməliyyat sistemində sadə fayl kimi saxlanılır.
GO TO FULL VERSION