CodeGym /Kurslar /Docker SELF /Konteynerlər arasında əlaqə

Konteynerlər arasında əlaqə

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

3.1 bridge şəbəkəsi əsası

Bridge şəbəkəsi Docker-də standart şəbəkə sürücüsüdür və konteynerlər arasında təcrid olunmuş şəbəkə yaratmaq üçün istifadə olunur. Bu şəbəkə konteynerlərə IP-ünvanlar və host adları ilə ünsiyyət qurmağa imkan verir, çox konteynerli tətbiqlərin fərqli komponentləri arasında qarşılıqlı əlaqəni təşkil etmək üçün rahat üsul təmin edir.

Bridge şəbəkəsi host səviyyəsində fərdi daxili şəbəkə yaradır ki, bu da hostun xarici şəbəkəsindən təcrid olunmuşdur. Bu şəbəkəyə qoşulan konteynerlər bir-biriylə ünsiyyət qura bilər, lakin port forwarding konfiqurasiyası olmadan birbaşa xarici dünya tərəfindən əlçatan deyil.

Bridge şəbəkəsinin avtomatik yaradılması

Standart olaraq, Docker qurulduğu zaman bridge şəbəkəsi yaradır və konkret bir şəbəkə təyin edilmədən işə salınan konteynerlər avtomatik olaraq bu şəbəkəyə qoşulur.

Bridge şəbəkəsində konteynerlərin yaradılması və istifadəsinə nümunə

1. Bridge şəbəkəsində konteynerlərin işə salınması:

Bu nümunədə biz iki konteyner işə salırıq: container1 (Nginx ilə) və container2 (Busybox ilə). Hər iki konteyner standart bridge şəbəkəsinə qoşulmuşdur.

Terminal

docker run -d --name container1 nginx
docker run -d --name container2 busybox sleep 1000

2. Konteynerlərin IP ünvanlarını yoxlamaq:

Konteynerlərin IP ünvanlarını yoxlamaq üçün docker inspect əmrindən istifadə edin.

Bu komandalar konteynerlərin IP ünvanlarını göstərəcək və bu ünvanlar onlar arasında ünsiyyət üçün istifadə edilə bilər.

Terminal

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container1
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container2

3. Konteynerlər arasında IP ünvan vasitəsilə ünsiyyət:

Konteynerlər arasında ünsiyyəti yoxlamaq üçün container2-dən istifadə edərək container1-ə ping əmri göndərin.

Əgər konteynerlər düzgün şəkildə bridge şəbəkəsinə qoşulublarsa, ping əmri uğurlu olacaq.

Terminal


docker exec container2 ping -c 4 <IP_ADDRESS_OF_CONTAINER1>

3.2 Host adlarından istifadə

Konteynerlər arasında əlaqə üçün host adlarından istifadə

IP ünvanlardan istifadə etməklə yanaşı, Docker konteynerlər arasında əlaqə üçün konteyner adlarından istifadə etməyə də imkan verir. Bu konfiqurasiyanı asanlaşdırır, çünki konteyner adları daimidir, IP ünvanlardan fərqli olaraq bu ünvanlar konteynerlər yenidən işə salındıqda dəyişə bilər.

Host adı ilə əlaqə nümunəsi

1. Bridge şəbəkəsi ilə konteynerlərin işə salınması:

Terminal

docker run -d --name webserver --network bridge nginx
docker run -d --name appserver --network bridge busybox sleep 1000

2. Host adı vasitəsilə əlaqənin yoxlanılması:

ping komandası istifadə edin və appserver konteynerindən webserver-i ping-leyin:

Terminal


docker exec appserver ping -c 4 webserver 

Custom bridge şəbəkəsinin yaradılması

Default olaraq bridge şəbəkəsi əvəzinə custom bir bridge şəbəkəsi yarada bilərsiniz. Bu konteynerlər arasında əlaqəni daha yaxşı idarə etməyinizə kömək edəcək.

Custom şəbəkə yaratma nümunəsi

1. Custom şəbəkəsinin yaradılması:

Terminal


docker network create --driver bridge my_bridge_network 

2. Konteynerlərin custom şəbəkədə işə salınması:

Terminal

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

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

3. Host adı vasitəsilə əlaqənin yoxlanılması:

Terminal

docker exec appserver ping -c 4 webserver 

3.3 Bir neçə host nümunələri

Əməliyyat nümunələri

Nümunə 1: Web-Server və Verilənlər Bazası

Web-server və verilənlər bazası üçün docker-compose.yml faylı yaradın:

Yaml

version: '3.8'

services:
  web:
    image: nginx:latest
    networks:
      - my_bridge_network
        
  db:
    image: postgres:latest
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
    networks:
      - my_bridge_network
        
networks:
  my_bridge_network:
    driver: bridge

Docker Compose işə sal:

Terminal


docker compose up -d 

Konteynerlər arasındakı əlaqəni yoxlayın:

Terminal


docker compose exec web ping -c 4 db 

Nümunə 2: Mikroservis Arxitekturası

Mikroservis tətbiqi üçün docker-compose.yml faylı yaradın:

Yaml

version: '3.8'

services:
  frontend:
    image: nginx:latest
    networks:
      - my_bridge_network
        
  backend:
    image: mybackend:latest
    networks:
      - my_bridge_network
        
  db:
    image: postgres:latest
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
    networks:
      - my_bridge_network
        
networks:
  my_bridge_network:
    driver: bridge

Docker Compose işə sal:

Terminal

        
docker compose up -d 

Konteynerlər arasındakı əlaqəni yoxlayın:

Terminal

docker compose exec backend ping -c 4 db

docker compose exec frontend ping -c 4 backend 
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION