CodeGym /Kurslar /Docker SELF /İstifadəçi Şəbəkələrinin İstifadəsi

İstifadəçi Şəbəkələrinin İstifadəsi

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

5.1 İstifadəçi şəbəkələrinin əsas növləri

Docker-də istifadəçi şəbəkələri konteynerlər arasında şəbəkə əlaqəsini qurmaq və idarə etmək üçün çevik imkanlar təqdim edir. Onlar konteynerləri izolyasiya etməyə, qarşılıqlı əlaqəni təşkil etməyə və mürəkkəb şəbəkə topologiyaları yaratmağa imkan verir. Bu mövzuda Docker-də istifadəçi şəbəkələrini necə yaratmaq və tənzimləmək, həmçinin onların istifadəsi ilə bağlı nümunələri nəzərdən keçirəcəyik.

İstifadəçi şəbəkələrinin əsas növləri

Docker bir neçə tip istifadəçi şəbəkəsini dəstəkləyir, hər biri müxtəlif istifadə ssenariləri üçün öz xüsusiyyətlərinə malikdir:

  1. Bridge (körpü şəbəkələri): Bir hostdakı konteynerlər arasında izolyasiya və əlaqə təmin edir.
  2. Overlay (overley şəbəkələri): Docker Swarm ya da Kubernetes klasterində müxtəlif hostlarda işləyən konteynerlər arasında əlaqə üçün istifadə olunur.
  3. Macvlan: Konteynerlərin hostun fiziki şəbəkə interfeysindən birbaşa istifadə etməyə imkan verir, bu yüksək performans tələbləri olan şəbəkə tətbiqləri üçün faydalı ola bilər. Həmçinin köhnə arxitekturalar üçün istifadə olunur, harada ki şəbəkə mac-adresinə bağlanma mövcuddur. Bu tip şəbəkə hər bir qoşulmuş konteynerə mac-adres təyin etməyə imkan verir.
  4. Host (host şəbəkələri): Konteynerlər hostun şəbəkə stekindən istifadə edir, bu da şəbəkə virtualizasiyası ilə bağlı xərcləri aradan qaldırır, lakin izolyasiyanı azaldır.

5.2 Körpü (bridge) şəbəkələrinin yaradılması və istifadəsi

Körpü (bridge) şəbəkələri ən çox yayılmış istifadəçi şəbəkəsi tiplərindən biridir və bir hostda konteynerlərin izolasiya edilməsi üçün istifadə olunur. Eyni bridge şəbəkəsinə qoşulmuş konteynerlər bir-biri ilə IP ünvanları və host adları vasitəsilə əlaqə qura bilərlər.

Xüsusi bridge şəbəkəsi-nin yaradılması

Xüsusi bridge şəbəkəsi yaratmaq üçün docker network create əmrindən istifadə edin:

Terminal


docker network create --driver bridge my_bridge_network 

Konteynerlərin xüsusi şəbəkədə işə salınması

Konteynerləri yaradılmış şəbəkəyə qoşaraq işə salın:

Terminal

docker run -d --name container1 --network my_bridge_network nginx

docker run -d --name container2 --network my_bridge_network busybox sleep 1000

Konteynerlər arasında əlaqələrin yoxlanılması

Konteynerlər arasında əlaqəni yoxlamaq üçün ping komandasından istifadə edə bilərsiniz:

Terminal


docker exec container2 ping -c 4 container1 

Əgər konteynerlər my_bridge_network şəbəkəsinə düzgün qoşulmuşdursa, ping əmri uğurlu olacaq.

5.3 Docker Compose-də istifadəçi şəbəkələri

Docker Compose-də istifadəçi şəbəkələrinin istifadəsi nümunələri

Docker Compose çox konteynerli tətbiqlər üçün şəbəkələrin yaradılmasını və idarə olunmasını asanlaşdırır. Siz docker-compose.yml faylında istifadəçi şəbəkələrini təyin edə bilərsiniz.

docker-compose.yml faylının nümunəsi:

Yaml

version: '3.8'

services:
  web:
    image: nginx:latest
    networks:
      - my_bridge_network
        
  app:
    image: myapp:latest
    networks:
      - my_bridge_network
        
networks:
  my_bridge_network:
    driver: bridge

Docker Compose işə salın:

Terminal


docker compose up -d 

Bu nümunədə hər iki servis (web və app) my_bridge_network adlı istifadəçi şəbəkəsinə qoşulmuşdur.

5.4 macvlan şəbəkələrinin qurulması və istifadəsi

macvlan şəbəkələri konteynerlərə hostun fiziki şəbəkə interfeysindən birbaşa istifadə etməyə imkan verir, bu da şəbəkə performansına yüksək tələbləri olan tətbiqlər üçün faydalı ola bilər.

macvlan şəbəkəsinin yaradılması

Terminal

docker network create -d macvlan \
  --subnet=192.168.1.0/24 \
  --gateway=192.168.1.1 \
  -o parent=eth0 my_macvlan_network

macvlan şəbəkəsində konteynerlərin işə salınması

Terminal

docker run -d --name container1 --network my_macvlan_network nginx

docker run -d --name container2 --network my_macvlan_network busybox sleep 1000

5.5 Docker Compose-da istifadə nümunələri

Siz həmçinin macvlan şəbəkələrini Docker Compose-da istifadə edə bilərsiniz. Məsələn:

Yaml

version: '3.8'

services:
  web:
    image: nginx:latest
    networks:
      - my_macvlan_network
        
networks:
  my_macvlan_network:
    driver: macvlan
    driver_opts:
      parent: eth0
    ipam:
      config:
        - subnet: 192.168.1.0/24
        gateway: 192.168.1.1

Docker Compose-u işə salın:

Terminal


docker compose up -d 

5.6 Mikrosərvislər üçün şəbəkələrin istifadəsinə nümunə

Gəlin bir nümunəyə baxaq: burada bizim frontend, backend və məlumat bazamız var, bunları müxtəlif şəbəkələrdə təcrid etməliyik, amma onların qarşılıqlı əlaqəsini təmin etməliyik.

docker-compose.yml faylı

Yaml

version: '3.8'

services:
  frontend:
    image: myfrontend:latest
    networks:
      - front-tier
      - back-tier
        
  backend:
    image: mybackend:latest
    networks:
      - back-tier
      - db-tier
        
  database:
    image: postgres:latest
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
    networks:
      - db-tier
        
networks:
  front-tier:
    driver: host
  back-tier:
    driver: bridge
  db-tier:
    driver: bridge

Docker Compose işə salın:

Terminal

        
docker compose up -d 

Bu nümunədə:

  • Frontend servisi front-tierback-tier şəbəkələrinə qoşulub, bu da ona həm xarici müştərilərlə, həm də backend ilə qarşılıqlı əlaqə qurmağa imkan verir.
  • Backend servisi back-tierdb-tier şəbəkələrinə qoşulub, bu da ona frontend və məlumat bazası ilə qarşılıqlı əlaqə qurmağa imkan verir.
  • database servisi db-tier şəbəkəsinə qoşulub ki, bu da məlumat bazasını xarici girişdən təcrid edir.
1
Опрос
Docker Şəbəkə Ayarları,  17 уровень,  4 лекция
недоступен
Docker Şəbəkə Ayarları
Docker Şəbəkə Ayarları
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION