CodeGym /Kurslar /Docker SELF /Şəbəkə problemlərinin aradan qaldırılması

Şəbəkə problemlərinin aradan qaldırılması

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

8.1 Şəbəkə problemlərinin diaqnostikası üçün əsas addımlar

Docker-də şəbəkə problemləri müxtəlif səbəblərdən yarana bilər, buraya şəbəkələrin yanlış konfiqurasiyası, DNS problemləri, IP ünvanlarının konfliktləri və digər səbəblər daxildir. Bu mühazirədə, Docker-də şəbəkə problemlərinin diaqnostikası və həlli üsullarını nəzərdən keçirəcəyik.

Şəbəkə problemlərinin diaqnostikası üçün əsas addımlar:

  1. Kontainerlərin və şəbəkələrin vəziyyətini yoxlamaq
  2. Kontainerlərin daxilində şəbəkə utilitlərini istifadə etmək
  3. Docker-in və şəbəkə fayllarının konfiqurasiyasını yoxlamaq
  4. Docker-in sistem jurnallarını yoxlamaq
  5. Docker-in şəbəkə əmrlərindən istifadə etmək

8.2 Konteynerlərin və şəbəkələrin vəziyyətinin yoxlanılması

Şəbəkə problemlərinin diaqnostikasında ilk addım konteynerlərin və şəbəkələrin vəziyyətini yoxlamaqdır.

Konteynerlərin vəziyyətinin yoxlanılması

Bütün işləyən konteynerləri göstərmək üçün docker ps komandasından istifadə edin:

Terminal

docker ps 

Əgər konteynerlər işləmir, bu Docker-in özü ilə və ya konteynerlərin konfiqurasiyası ilə bağlı problemlərə işarə edə bilər.

Şəbəkələrin yoxlanılması

docker network ls komandası Docker-də yaradılmış bütün şəbəkələri göstərir:

Terminal

docker network ls 

Lazım olan şəbəkənin mövcudluğuna və konteynerlərin həmin şəbəkəyə qoşulduğuna əmin olun.

8.3 Kontainerlərin daxilində şəbəkə utilitlərindən istifadə

ping, curl, netcatnslookup kimi şəbəkə utilitləri, kontainerlərin daxilindəki problemləri diaqnostika etməyə kömək edə bilər.

ping nümunə istifadəsi

Kontainera qoşulun və digər bir kontainer və ya servislə bağlantını yoxlayın:

Terminal


docker exec -it <container_name> ping <target_container_name_or_ip> 

curl nümunə istifadəsi

Kontainer daxilində veb-servisin əlçatanlığını yoxlayın:

Terminal


docker exec -it <container_name> curl http://<target_service>

nslookup nümunə istifadəsi

Kontainer adlarının DNS həllini yoxlayın:

Terminal


docker exec -it <container_name> nslookup <target_container_name> 

nc host port nümunə istifadəsi

nc host port komandası şəbəkə bağlantılarını tənzimləmək və diaqnostika üçün istifadə olunur. Bu komanda vasitəsilə verilmiş host ilə müəyyən port üzərindən bağlantı qurulur.

Terminal


docker exec -it <container_name> nc -zv 192.168.1.1 22

8.4 Docker və şəbəkə fayllarının konfiqurasiyasını yoxlamaq

Docker və şəbəkə fayllarının yanlış konfiqurasiyası şəbəkə problemlərinə səbəb ola bilər.

docker-compose.yml faylının yoxlanılması

Əmin olun ki, docker-compose.yml faylı düzgün qurulub və bütün şəbəkələr, servislər və portlar düzgün qeyd olunub.

Yaml

version: '3.8'

services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
    networks:
      - webnet
        
  db:
    image: postgres:latest
    ports:
      - "5432:5432"
    networks:
      - webnet
        
networks:
  webnet:
    driver: bridge

/etc/docker/daemon.json faylının yoxlanılması

Əgər dəyişdirilibsə, Docker Daemon konfiqurasiyasını yoxlayın:

JSON

{
  "dns": ["8.8.8.8", "8.8.4.4"],
  "fixed-cidr": "192.168.1.0/24"
}

8.5 Docker sistem jurnallarının yoxlanması

Docker sistem jurnalları şəbəkə xətaları və problemləri haqqında faydalı məlumatlar ehtiva edə bilər.

Docker jurnallarına baxış

systemd ilə sistemlərdə Docker jurnallarını görmək üçün journalctl komandasından istifadə edin:

Terminal


journalctl -u docker.service 

Konteynerlərin loglarına baxış

Konteynerlərin logları da şəbəkə problemlərini diaqnostika etməkdə köməkçi ola bilər:

Terminal


docker logs <container_name>

8.6: Docker şəbəkə komandalarından istifadə

Docker, şəbəkələrin diaqnostikası və idarə edilməsi üçün komandalar təqdim edir, məsələn docker network inspectdocker network connect.

docker network inspect komandası

Bu komanda şəbəkə haqqında ətraflı məlumat əldə etməyə imkan verir, burada qoşulmuş konteynerlər və IPAM ayarları da daxil edilir.

Terminal

docker network inspect <network_name> 

docker network inspect komandası üzrə nəticə nümunəsi

JSON

[
    {
        "Name": "webnet",
        "Id": "e5e5e1b1a3e5",
        "Created": "2021-01-01T00:00:00.000000000Z",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "172.18.0.0/16",
                    "Gateway": "172.18.0.1"
                }
            ]
        },
        "Containers": {
            "container_id": {
                "Name": "web",
                "EndpointID": "6c52f8c75c1e",
                "MacAddress": "02:42:ac:11:00:02",
                "IPv4Address": "172.18.0.2/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {}
    }
]

docker network connect komandası

Əgər konteyner şəbəkəyə düzgün qoşulmayıbsa, onu əl ilə qoşmaq olar:

Terminal

docker network connect <network_name> <container_name>

8.7 Problemlərin diaqnostikası və həll edilməsi nümunələri

Nümunə 1: DNS domen adını IP-yə çevirmə problemləri

Əgər konteynerlər digər konteynerlərin host adlarını çevirə bilmirsə, DNS parametrlərini yoxlayın:

docker-compose.yml-də DNS parametrlərinin yoxlanması:

Yaml

version: '3.8'

services:
  web:
    image: nginx:latest
    dns:
      - 8.8.8.8

Konteyner daxilində DNS-in yoxlanması:

Terminal


docker exec -it <container_name> cat /etc/resolv.conf 

Nümunə 2: Servislərə çıxış problemləri

Əgər konteynerlər digər hostlardakı servislərə çıxış edə bilmirsə:

Açılmış portların yoxlanması:

Terminal


docker ps 

Firewall qaydalarının yoxlanması:

Gərəkli portların firewall qaydaları tərəfindən bloklanmadığından əmin olun.

Nümunə 3: IP ünvanı konflikti

Əgər konteynerlər arasında və ya host ilə IP ünvanı konflikti varsa:

Şəbəkə subnetinin yoxlanması:

Terminal


docker network inspect <network_name>

Subnetin dəyişdirilməsi:

Terminal

        
docker network create --subnet=192.168.2.0/24 my_network
3
Tapşırıq
Docker SELF, səviyyə, dərs
Bağlanıb
Konteynerlər arasında bağlantının yoxlanması
Konteynerlər arasında bağlantının yoxlanması
3
Tapşırıq
Docker SELF, səviyyə, dərs
Bağlanıb
nslookup istifadə edərək şəbəkə problemlərinin diaqnostikası
nslookup istifadə edərək şəbəkə problemlərinin diaqnostikası
3
Tapşırıq
Docker SELF, səviyyə, dərs
Bağlanıb
Şəbəkə konfiqurasiyasını öyrənmək
Şəbəkə konfiqurasiyasını öyrənmək
3
Tapşırıq
Docker SELF, səviyyə, dərs
Bağlanıb
IP ünvanlarının ziddiyyəti probleminin həlli
IP ünvanlarının ziddiyyəti probleminin həlli
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION