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.
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.
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.
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ı:
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:
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ı:
docker network create --driver bridge my_bridge_network
2. Konteynerlərin custom şəbəkədə işə salınması:
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ı:
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:
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:
docker compose up -d
Konteynerlər arasındakı əlaqəni yoxlayın:
docker compose exec web ping -c 4 db
Nümunə 2: Mikroservis Arxitekturası
Mikroservis tətbiqi üçün docker-compose.yml
faylı yaradın:
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:
docker compose up -d
Konteynerlər arasındakı əlaqəni yoxlayın:
docker compose exec backend ping -c 4 db
docker compose exec frontend ping -c 4 backend
GO TO FULL VERSION