CodeGym /Kurslar /Docker SELF /Docker istifadə etmə səbəbləri

Docker istifadə etmə səbəbləri

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

9.1 Mikroservis arxitekturası

Docker müasir proqram təminatının hazırlanması və istismarının ayrılmaz bir hissəsinə çevrilib. O, tətbiqləri izolyasiya olunmuş konteynerlərdə yaratmağa, yerləşdirməyə və çalışdırmağa imkan verir ki, bu da daşınma, konsistensiya və səmərə gətirir. Bu mühazirədə Docker istifadə etməyin bir neçə real ssenarisini nəzərdən keçirəcəyik, hansı ki, istifadə ciddi üstünlük verir.

Problem

Monolit tətbiqlərin hazırlanması səhvən istismara yararsız, həm də miqyaslanmayan hala gətirə bilər. Tətbiqin bir hissəsinin dəyişməsi digər hissələrə təsir edə bilər ki, bu da yeni versiyaların yerləşdirilməsi və test edilməsini çətinləşdirir.

Docker ilə həll

Docker mikroservis arxitekturasını yaratmağa imkan verir, burada hər mikroservis tətbiqi öz konteynerində yerləşdirilir. Bu yanaşma mikroservisların bir-birindən izolyasiyasını və müstəqilliyini təmin edir.

Nümunə

Təsəvvür edin, sizdə aşağıdaki mikroservislerden ibarət bir tətbiq var: istifadəçilər, sifarişlər və ödəniş. Siz hər biri uyğun mikroservisi ehtiva edən üç Docker-imici yarada bilərsiniz:

Terminal

docker run -d --name users-service users-image
docker run -d --name orders-service orders-image
docker run -d --name payment-service payment-image 

9.2 Davamlı inteqrasiya və çatdırılma (CI/CD)

Problem

İnkişaf, test və yerləşdirmə prosesləri çox vaxt əhəmiyyətli səylər və vaxt tələb edir, xüsusilə də inkişaf və test mühitləri production-dan fərqli olduqda.

Docker ilə həll

Docker bütün inkişaf mərhələlərində mühitdə ardıcıllıq təmin edir. Docker-dən istifadə edərək, tətbiqinizin inkişafdan testə və production-a qədər bütün mühitlərdə eyni işləyəcəyinə zəmanət verə bilərsiniz.

Nümunə

Docker istifadə edərək CI/CD pipeline qura bilərsiniz, burada hər mərhələ (build, test, yerləşdirmə) konteyner daxilində icra olunur:

Image-in yığılması:

Terminal


docker build -t my-app .

Testlərin işə salınması:

Terminal


docker run my-app ./run-tests.sh

Yerləşdirmə:

Terminal


docker push my-app:latest
ssh user@production-server "docker pull my-app:latest && docker run -d my-app"

9.3 Portativlik və konsistentlik

Problem

Proqramçılar tez-tez belə problemlərlə üzləşirlər ki, tətbiq onların kompüterində işləyir, amma serverdə və ya başqa bir mühitdə işləmir. Bu, quraşdırılmış asılılıqlar, kitabxana versiyaları və əməliyyat sistemlərindəki fərqlərə görə baş verə bilər.

Docker ilə həll

Docker izolyasiya olunmuş konteynerlər yaradır, bu konteynerlər tətbiqin işləməsi üçün lazım olan bütün asılılıqları və ayarları özündə cəmləşdirir. Bu da hər hansı bir mühitdə tətbiqin eyni şəkildə işləyəcəyinə zəmanət verir.

Nümunə

Tətbiqinizin bütün asılılıqları və qurulma addımlarını təsvir edən bir Dockerfile yarada bilərsiniz:

dockerfile

FROM node:14
WORKDIR /app
COPY package.json .
RUN npm install
COPY . .
CMD ["npm", "start"]

İndi, bu imici harada işə salsanız da (yerli kompüterdə, serverdə və ya buludda), tətbiqiniz eyni şəkildə işləyəcək.

9.4 Təhlükəsizlik təminatı

Problem

Tərtibatçılar çox vaxt tətbiqləri yerləşdirdikdə təhlükəsizlik problemləri ilə qarşılaşır, xüsusilə də tətbiq bir çox üçüncü tərəf kitabxanalara və alətlərə bağlı olduqda.

Docker ilə həll

Docker konteynerlərin izoliyasını təmin edir, bu da təhlükəsizlik risklərini minimuma endirir. Konteynerlər izolyasiya olunmuş mühitlərdə işləyir, bu da onları hücumlara qarşı az həssas edir.

Nümunə

Konteynerlərə əlçatan olan resursları məhdudlaşdıra və təhlükəsizlik siyasətləri təyin edə bilərsiniz:

Terminal


docker run -d --name secure-app --memory="512m" --cpus="1" --security-opt=no-new-privileges my-
secure-app

9.5 Test etmə və avtomatlaşdırma

Problem

Tətbiqlərin müxtəlif konfiqurasiyalarda və mühitlərdə test edilməsi mürəkkəb və vaxt aparan bir proses ola bilər.

Docker ilə həll

Docker izolyasiyalı test mühitlərinin asanlıqla yaradılmasını və idarə edilməsini təmin edir. Fərqli konfiqurasiyalarda testlər apara bilərsiniz, əsas inkişaf mühitinə təsir etmədən.

Nümunə

Docker-dən izolyasiyalı test mühitləri yaratmaq üçün istifadə edə bilərsiniz:

Terminal


docker run -d --name test-db -e POSTGRES_PASSWORD=mysecretpassword postgres
docker run -d --name test-app --link test-db:db my-app 

9.6 Cloud hesablama və miqyaslama

Problem

Tətbiqlərin cloud mühitlərdə miqyaslanması mürəkkəb və baha başa gələn proses ola bilər, xüsusilə də tətbiq çoxlu resurslar və mürəkkəb konfiqurasiya tələb edirsə.

Docker ilə həll

Docker cloud mühitlərdə tətbiqləri asanlıqla miqyaslamağa imkan verir. Siz AWS, Google Cloud, Azure və digər cloud platformalarında konteynerlər yarada və idarə edə bilərsiniz, resursların istifadəsində çeviklik və səmərəlilik təmin edir.

Nümunə

Docker və Kubernetes istifadə edərək, tətbiqlərinizi asanlıqla miqyaslaya bilərsiniz:

yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
        - name: my-app
        image: my-app:latest
        ports:
        - containerPort: 80
1
Sorğu/viktorina
, səviyyə, dərs
Əlçatan deyil
Əsas Docker komandaları
Əsas Docker komandaları
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION