CodeGym /Kurslar /Docker SELF /Proqram üçün şəbəkələrin və volume-lərin tənzimlənməsi

Proqram üçün şəbəkələrin və volume-lərin tənzimlənməsi

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

5.1 Şəbəkələrin tənzimlənməsi

Gəlin daha ətraflı baxaq ki, çox konteynerli tətbiqimiz üçün şəbəkələri və həcmləri necə tənzimləyək. Bu, servislərin düzgün qarşılıqlı işləməsini və məlumatların uzunmüddətli saxlanmasını təmin edəcək.

Docker şəbəkələri konteynerlərin bir-biri ilə qarşılıqlı əlaqəsini təmin edir. Bizim tətbiqimizdə frontend, backend və verilənlər bazası arasında əlaqə üçün bridge şəbəkəsi istifadə olunacaq.

Şəbəkənin yaradılması

Artıq docker-compose.yml faylında task-network şəbəkəsini müəyyən etmişik:

Yaml

networks:
  task-network:
    driver: bridge

Burada:

  • task-network: Konteynerlərin qarşılıqlı əlaqəsi üçün istifadə olunacaq şəbəkənin adı.
  • driver: bridge: Şəbəkə növü. Bridge şəbəkəsi bir hostdakı konteynerlərin əlaqəsi üçün standartdır.

Servislərin şəbəkəyə qoşulması

Bütün servisləri docker-compose.yml faylında bu şəbəkəyə qoşmuşuq. Hər bir servisin düzgün qoşulduğuna əmin olaq:

Frontend üçün nümunə:

Yaml

frontend:
  build: ./frontend
  ports:
    - "3000:3000"
  networks:
    - task-network

Backend üçün nümunə:

Yaml

backend:
  build: ./backend
  ports:
    - "5000:5000"
  depends_on:
    - database
  networks:
    - task-network
  environment:
    - DATABASE_URL=postgresql://taskuser:taskpassword@database:5432/taskdb

Verilənlər bazası üçün nümunə:

Yaml

database:
  image: postgres:13
  environment:
    - POSTGRES_DB=taskdb
    - POSTGRES_USER=taskuser
    - POSTGRES_PASSWORD=taskpassword
  networks:
    - task-network
  volumes:
    - db-data:/var/lib/postgresql/data

5.2 Həcmərin sazlanması

Docker-həcmər, konteynerlərin məlumatlarını host sistemində saxlamağa və onların uzunmüddətli saxlanmasını təmin etməyə imkan verir. Tətbiqimizdə biz PostgreSQL verilənlər bazasının məlumatlarını saxlamaq üçün bir həcmdən istifadə edəcəyik.

Həcm yaratmaq

Biz artıq db-data həcmini docker-compose.yml faylında müəyyən etmişik:

Yaml

volumes:
  db-data:

Burada:

  • db-data: PostgreSQL verilənlər bazasının məlumatlarını saxlamaq üçün istifadə ediləcək həcm adı.

Həcmın verilənlər bazası xidmətinə qoşulması

Biz db-data həcmni verilənlər bazası xidmətinə docker-compose.yml faylında qoşduq. Doğru edildiyini yoxlayaq:

Verilənlər bazası üçün nümunə:

Yaml

database:
  image: postgres:13
  environment:
    - POSTGRES_DB=taskdb
    - POSTGRES_USER=taskuser
    - POSTGRES_PASSWORD=taskpassword
  networks:
    - task-network
  volumes:
    - db-data:/var/lib/postgresql/data  

Burada:

  • volumes: Konteynerə hansı həcmələrin qoşulacağını müəyyən edir.
  • db-data:/var/lib/postgresql/data: db-data həcmni konteynerin içindəki /var/lib/postgresql/data direktoriyası ilə bağlayır. Bu direktoriyadan PostgreSQL verilənlər bazası məlumatlarını saxlamaq üçün istifadə edir.

5.3 Tam docker-compose.yml faylı

Dəqiqlik və tamlıq üçün şəbəkə və səs həcmi sazlamalarını daxil edən tam docker-compose.yml faylını təqdim edirik:

Yaml

version: '3'

services:
  frontend:
    build: ./frontend
    ports:
      - "3000:3000"
    networks:
      - task-network
        
  backend:
    build: ./backend
    ports:
      - "5000:5000"
    depends_on:
      - database
    networks:
      - task-network
    environment:
      - DATABASE_URL=postgresql://taskuser:taskpassword@database:5432/taskdb
        
  database:
    image: postgres:13
    environment:
      - POSTGRES_DB=taskdb
      - POSTGRES_USER=taskuser
      - POSTGRES_PASSWORD=taskpassword
    networks:
      - task-network
    volumes:
      - db-data:/var/lib/postgresql/data
        
networks:
  task-network:
    driver: bridge
        
volumes:
  db-data:

Şəbəkə və səs həcmi sazlamalarının yoxlanılması

Şəbəkə və səs həcmi sazlamalarını etdikdən sonra, hər şeyin düzgün işlədiyinə əmin olun:

  1. 1. Konteynerlərin işə salınması:
    Terminal
    
    
    docker compose up
    
            
  2. 2. Şəbəkənin yoxlanılması:
    • docker network ls əmri ilə task-network şəbəkəsinin yaradıldığını yoxlayın.
    • docker network inspect task-network əmri ilə bütün konteynerlərin həmin şəbəkəyə qoşulduğunu təsdiqləyin.
  3. 3. Səs həcminin yoxlanılması:
    • docker volume ls əmri ilə db-data səs həcminin yaradıldığını yoxlayın.
    • docker volume inspect db-data əmri ilə səs həcminin detalları ilə tanış olun.
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION