Skip to main content

Docker - I Hissə

Salam dostlar.

Bu məqaləmdə sizə
 "Docker" haqqında bəhs edəcəm. Xatırlayırsınızsa, ötən məqalələrimdən birində sizə "Kubernetes" haqqında (I hissə məqalədə) bəhs etmişdim. Qeyd edim ki, "Kubernetes" haqqında II (2-ci) hissə məqalə də sizə təqdim olunacaqdır. İndi isə məqaləmizə başlayaq. Beləliklə, Docker nədir?

Docker tətbiqlərin, proqram təminatının qurulması və daşınması üçün nəzərdə tutulmuş konteyner tipli açıq bir platformadır. Proqram təminatının qurularaq konteyner vasitəsilə daşınmasını həyata keçirən Docker, tətbiqləri infrastrukturdan ayırır ki, məhz Docker ilə tətbiqlərin idarə edilməsi kimi infrastrukturun da idarə edilməsi mümkün olur. Docker metodologiyalarından yararlanaraq, "production"-da kod yazmaqla tətbiqetmə arasında olan gecikməni əhəmiyyətli dərəcədə azaltmaq mümkündür. Qeyd edim ki, "Kubernetes" kimi Docker də "Go" proqramlaşdırma dilində yazılmış və Docker 2013-cü ildə yaradılmışdır. Docker "Windows", "Linux" və "Mac" əməliyyat sistemlərini, "Java", "C#", "Python", "PHP", "Groovy", "Ruby" və s. proqramlaşdırma dillərini dəstəkləyir. Konteyner texnologiyasına əsaslanan Docker ilə Virtualizasiyanın (VM) fərqi ondan ibarətdir ki, Virtualizasiyada hər VM-in bir əməliyyat sistemi olduğu halda, Docker konteynerlərdə isə bir əməliyyat sistemi mövcud olur və hər bir proqram, tətbiq üçün ayrıca əməliyyat sisteminə ehtiyac duyulmadan bir əməliyyat sistemi mərkəzdən paylanır. Bir sözlə, bir-birilərindən təcrid olunmuş (isolate) formada işləyən Docker konteynerlər bir əməliyyat sistemini istifadə edərək öz aralarında bölüşdürə bilirlər və Docker konteynerlər arasındakı əməliyyat sistemi resurslarının bölüşdürülərək izolyasiyası "namespace"-lər vasitəsilə həyata keçirilir. Əlavə olaraq qeyd edim ki, virtualizasiyaya nisbətən Docker konteynerlər daha az resurs istifadə edə bilir ki, virtualizasiyada hər bir əməliyyat sisteminə kifayət qədər (RAM, CPU, Disk Storage və s.) resurs verildiyi halda, Docker konteynerlər bir əməliyyat sistemindən paylanan resursları öz iş yüklərinin tələbinə əsasən istifadə edə bilir, bu da virtualizasiyaya nisbətən Docker konteynerlərdə əməliyyat sisteminin yüklənməməsi deməkdir. Aşağıda verilən şəkilə diqqət yetirsək virtualizasiya ilə Docker konteynerin fərqini asan şəkildə anlaya bilərik:

No alt text provided for this image

Docker Arxitekturası

Docker "client-server" arxitekturasını istifadə edir. Belə ki Docker client konteynerlərin qurulması, istifadəsi və daşınması üçün Docker "daemon" ilə əlaqə qurur ki, bu əlaqə "Unix" və ya şəbəkə interfeysi üzərindən "REST API" vasitəsilə həyata keçirilir. Docker client və daemon eyni sistemdə işləyə, eləcə də Docker client ilə daemon arasında əlaqənin kənardan qurulması da təmin edilə bilir.

Docker haqqında bəzi qısa qeydlər:

No alt text provided for this image

Docker Compose - çox (multi) konteynerli Docker tətbiqetmələrini təyin, idarə və istifadə etmək üçün bir vasitədir;

Docker Daemon - Docker daemon (dockerd) Docker API sorğularını dinləyir, Docker obyektlərinə daxil olan image-lər, konteynerlər, şəbəkələr, "volume"-lar və s. idarə edir. Docker xidmətlərinin idarə edilməsi üçün bir daemon digər daemon-lar ilə də əlaqə qura bilir;

Docker Client - Docker istifadəçilərinin Docker ilə qarşılıqlı əlaqəsininin təmin edilməsində əsas rol oynayır. Docker client birdən çox daemon ilə əlaqə qura bilir. Əgər istifadəçi "docker run" əmrini istifadə etdikdə, client bu tipli əmrlərin icrasının həyata keçirilməsini "dockerd"-ə göndərir. Docker əmri Docker API-ni istifadə edir;

Docker Registry - Docker registry public və private olmaqla özündə Docker image-lərini saxlayır. Docker HUB isə hər kəsin istifadə edə biləcəyi bir public "registry"-dir və Docker "default" olaraq Docker Hub-da "image"-lərin paylaşımı və istifadəsi üçün konfiqurasiya edilmişdir. Qeyd edim ki, "docker pull" və ya "docker run" əmrlərini istifadə etdikdə, "image"-lər konfiqurasiya edilmiş registry-dən çıxarılır, "docker push" əmri ilə isə "image"-lər (əksinə olaraq) konfiqurasiya edilmiş registry-yə göndərilir.

Docker CLI - Docker deamon-u ilə əlaqənin yaradılmasına imkan verən və əmrlərin icrasını həyata keçirən bir platformadır. Dockerin quraşdırılması zamanı həm Docker deamon, həm də Docker CLI alətləri bir araya gətirilmiş olur. Docker run əmri, verilmiş bir "image"-dən konteyner yaradır və müvafiq əmrin icra edilməsilə konteynerin işə salınmasını (start-ı) təmin edir;

Dockerfile - Docker "image"-lərinin yaradılması üçün əsas konsepsiyadır və "image"-lərin necə qurulduğunu təsvir edən əmrlərin (konfiqurasiyalar, instruksiylar, source "code"-lar və s.) siyahısını özündə ehtiva edən bir mətn sənədidir. Docker "build" əmri, Dockerfile-ın içərisindəki məzmuna uğun olaraq Docker-ə "image" yaratmağı əmr edir.

Dostlar,

Fikrimcə, Docker haqqında məqaləmin ilk (I) hissəsində bu qədər, növbəti (II) hissədə Docker haqqında daha da nəzəri və praktiki məlumatları sizə təqdim edəcəm. Güman edirəm ki, bu qısa məqaləm bilgilənmə istiqamətində işinizə yarayacaqdır.

Təşəkkür edirəm və uğurlar!

Hörmətlə,
Müəllif
Araz Əhmədov


Comments

Popular posts from this blog

Fayl Bərpa Alqoritmləri

  Salam dostlar, Bu yazımda sizə fayl bərpa proqramlarının (Recuva, Wondershare, EaseUS Data Recovery və s.) faylları bərpa etməsi haqqında bəhs etmək istərdim ki, məhz bu proqramlar silinmiş məlumatların (şəkil, video, sənəd və s.) geri qaytarılması üçün xüsusi alqoritmlərdən istifadə edir. Bu prosesin texniki tərəflərini izah etmək üçün əvvəlcə bir neçə əsas anlayışı bilmək lazımdır: Silinmiş faylların vəziyyəti Əksər fayl sistemlərində (məsələn, NTFS, FAT32, exFAT) fayl silindikdə, həmin fayl fiziki olaraq diskin üzərindən silinmir ki, bu zaman: Fayl sistemində faylın olduğu yer boş olaraq işarələnir və həmin sahə üzərində yeni məlumat yazıla bilməsi üçün icazə verilir; Faylın "metadata"-ları (fayl adı, ölçüsü, yaradılma tarixi və s.) xüsusi strukturlarda saxlanılır (məsələn, NTFS-də MFT / Master File Table). Bu səbəbdən, fayl silindikdən dərhal sonra onu bərpa etmək mümkündür, çünki həmin məlumat fiziki olaraq diskin üzərində qalır. Ancaq yeni məlumat həmin yerə yazıldıqd...

How To Install WordPress On Rocky Linux 9

WordPress is widely recognized as the preferred platform for building websites and blogs due to its ease of use and wide range of customization features. Suppose you’re considering installing WordPress on Rocky Linux, an open-source operating system known for its reliability. In that case, you’ll find the process to be quite straightforward when coupled with the LAMP stack – Linux, Apache, MySQL, and PHP. In the following article, we will guide you through each step of setting up WordPress on Rocky Linux using LAMP, allowing you to get your website or blog up and running smoothly in no time. So, let’s dive into the process! Install WordPress On Rocky Linux 9 Step 1: Update Your System in Rocky Linux Step 2: Installation process of LAMP Step 3: Install WordPress in Rocky Linux 9 Step 4: Configuration of Database Step 5: Configuration of WordPress Step 6: Configuration of Firewall settings Step 7: Log in to WordPress Step 1: Update Your System in Rocky Linux Before installing any new sof...

Fayl şifrələmə vasitələri (Linux)

Salam dostlar, Bu məqaləmdə "linux"-da istifadə olunan bəzi fayl şifrələmə vasitələri (file encryption tools) haqqında bəhs edəcəm. Beləliklə, fayl şifrələməsi nədir və "linux"-da hansı fayl şifrələmə vasitələri mövcuddur? Fayl şifrələməsi mübadilə edilən məlumatların oxunmaz vəziyyətə çevrilməsi prosesidir ki, faylların şifrələnməsi təhlükəsizlik baxımından çox vacibdir. Beləliklə, "linux"-da faylların şifrələməsini həyata keçirən bəzi vasitələr (tools) mövcuddur: "GnuPG (GPG)" "GnuPG" şifrələmə və rəqəmsal imza məqsədləri üçün geniş istifadə olunan pulsuz və açıq mənbəli proqramdır ki, faylları və e-poçtları şifrələmək, eləcə də deşifrə etmək üçün "OpenPGP" standartından istifadə edir. Bu şifrələmə platformasınds əvvəlcə "public key" və "private key" yaradılmalıdır ki, bu zaman "public key" şifrələmə (encrypt), "private key" isə şifrənin açılması (decrypt) üçü...