Menyu

Docker nədir, necə işləyir?

Docker nədir, necə işləyir?

Docker proqram təminatının containerlər kimi “run” olmasını təmin edən texnologiyadır. Dockeri bir proqramı işlətmək üçün lazım olan hər şeyi özündə birləşdirən bir virtual maşın kimi düşünə bilərik.

Niyə docker işlətməliyik?

Ümumiyyətlə, dünyamızda bütün yeni texnologiyalar hər hansı bir ehtiyacdan yaranır, məsələn: Uzun məsafələri qət etmək üçün avtomobil yaranıb, və ya uzaqda olan insanlarla əlaqə saxlamamız üçün telefon və.s.

Bəs docker nəyə görə yaranıb, dockerə niyə ehtiyac duyulub? Aşağıda bir neçə problem yazaq.

1. Köhnə bir layihəni develop etmək.

Yeni bir işə başladığımızı və yeni işimizdə yeni layihələrlə yanaşı köhnə bir layihəni də support etməli olduğumuzu düşünək. Bu zaman biz köhnə layihənin lokal kompüterimizdə işləməsi üçün lazım olan mühiti yaratmalıyıq. Amma həmin layihə köhnə olduğundan, işlədilən pluginlər, dependencylər hamısı köhnə versiyalı olmalıdır. Məsələn düşünək ki, sql-in son versiyası 10-dur amma bu köhnə layihədə sql-in 5 versiyası işlədilib. Biz buna görə kompüterimizdəki sql-in versiyasını azaltmalıyıqmı?

2. Bir neçə fərqli versiyalı texnologiyalar işlədilən layihələri paralel develop etmək.

1-ci nümunəyə yenə qayıdaq. 1-ci nümunədə köhnə bir layihə develop edirdik. Bəs yeni layihələrə qayıdanda? Həftənin tək günləri köhnə, cüt günləri yeni bir layihəni develop ediriksə bu zaman hər gün kompüterimizdəki proqramların versiyasını dəyişməliyik?

3. Layihəmizi daşınabilən etmək.

Bəs layihənin daşınabilən olması nə deməkdir? Layihənin daşına bilən olması, fərqli əməliyyat sistemlərində, fərqli kompüterlərdə işləyə bilməsi deməkdir. Məsələn development komandamıza yeni bir işçi gəldiyini düşünək, biz həmin işçinin kompüterindən, əməliyyat sistemindən asılı qalmadan layihənin development mühitini rahatalıqla yeni əməkdaşa ötürə bilməliyik .

Məncə yuxarıdakı problemlər kifayət edir. Bu problemlərin həlli üçün bizə lazım olan texnologiya olan docker ortalığa çıxır və onun vasitəsilə yuxarıdakı problemləri həll etmək olur. Docker layihəmiz üçün lazım olan hər şeyi öz containerində saxlayır. Və artıq yuxarıdakı problemlərin hamısı həll olmuş olur.

1. Artıq köhnə bir layihə də olsa ona lazım olan bütün köhnə dependencylər docker containerinin daxilində hazır olduğu üçün kompüterimizdə docker olması kifayət edir.

2. Bu problemdə də artıq bir neçə hətta yüzlərlə layihəni də eyni anda develop etsək belə hər birinin öz mühiti ayrı-ayrı containerlərdə olacağı üçün bu problemimiz də həll olur.

3. 3-cü problemimiz layihənin daşına bilən olması idi. Layihəmizin mühiti artıq docker containerində olduğuna görə yeni gələn işçinin kompüterində docker olması bizim üçün kifayət edir.

Bəs nədir bu container, ümumiyyətlə docker terminlərini bir incələyək:
 

Container

Docker containerlər linux kernelində yazılmış virtuallaşma texnologiyasıdır. Bir çoxumuz virtual maşın işlətmişik. Container, virtual maşında yaradılan əməliyyat sisteminin dockerdəki qarşılığıdır. Lakin daha sadədir, virtual maşın qədər ağır bir proses deyil, və dockerdə bu containerlərdən eyni anda yüzlərlə yarada bilərik.

Image

Containerlər imagelərdən ibarət olur. İmagelər containerdə qurulacaq proqramlardır. Az əvvəl dockerin bizim üçün development mühiti yaratmasından bəhs etmişdik. Həmin mühiti container, bu mühitdəki dependency və lazım olan proqramları isə image adlandırmaq olar.

Docker CLI

 Docker komandalarını çalışdırmaq üçün istifadə olunan command line interface –dir.

Dockerfile

Dockerfile image yaratmamız üçün lazım olan komandaların yazıldığı fayldır. Faylımızın adı nə böyük nə kiçik eynilə Dockerfile olmalıdır.

Docker Compose

Bir neçə containeri və bu containerlərə lazım olan imageləri idarə etmək üçün istifadə olunur.

 

Docker yeni bir texnologiya olmasına baxmayaraq, çox tez bir zamanda populyar oldu. Buna səbəb virtuallaşma texnologiyasını çox sadə bir şəkildə yerinə yetirməsi idi. Və günümüzdə Docker demək olar ki böyük layihələr başda olmaq üzrə bütün layihələrdə istifadə olunur.