CodeGym /Kursy /Docker SELF /Konfiguracja sieci i woluminów dla aplikacji

Konfiguracja sieci i woluminów dla aplikacji

Docker SELF
Poziom 23 , Lekcja 4
Dostępny

5.1 Konfiguracja sieci

Przyjrzyjmy się jeszcze raz szczegółowo, jak skonfigurować sieci i woluminy dla naszej aplikacji wielokontenerowej. Zapewni to prawidłową komunikację między usługami i trwałe przechowywanie danych.

Sieci Docker pozwalają kontenerom komunikować się ze sobą. W naszej aplikacji będziemy używać sieci typu bridge do połączenia frontendu, backendu i bazy danych.

Tworzenie sieci

Już zdefiniowaliśmy sieć task-network w pliku docker-compose.yml:

Yaml

networks:
  task-network:
    driver: bridge

Gdzie:

  • task-network: nazwa sieci, która będzie używana do komunikacji kontenerów.
  • driver: bridge: typ sieci. Sieć bridge jest standardowym typem do komunikacji kontenerów na jednym hoście.

Połączenie usług z siecią

Połączyliśmy wszystkie usługi z tą siecią w pliku docker-compose.yml. Upewnijmy się, że każda usługa jest prawidłowo połączona:

Przykład dla frontendu:

Yaml

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

Przykład dla backendu:

Yaml

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

Przykład dla bazy danych:

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 Konfiguracja wolumenów

Wolumeny Dockera pozwalają na przechowywanie danych kontenerów na systemie hosta, zapewniając ich długoterminowe przechowywanie. W naszej aplikacji będziemy używać wolumenu do przechowywania danych bazy danych PostgreSQL.

Tworzenie wolumenu

Już zdefiniowaliśmy wolumen db-data w pliku compose.yaml:

Yaml

volumes:
  db-data:

Gdzie:

  • db-data: nazwa wolumenu, który będzie używany do przechowywania danych bazy danych PostgreSQL.

Podłączanie wolumenu do serwisu bazy danych

Podłączyliśmy wolumen db-data do serwisu bazy danych w pliku docker-compose.yml. Upewnijmy się, że zostało to poprawnie skonfigurowane:

Przykład dla bazy danych:

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  

Gdzie:

  • volumes: definiuje, które wolumeny będą podłączone do kontenera.
  • db-data:/var/lib/postgresql/data: łączy wolumen db-data z katalogiem /var/lib/postgresql/data wewnątrz kontenera. Ten katalog jest używany przez PostgreSQL do przechowywania danych.

5.3 Cały plik compose.yaml

Dla jasności i kompletności przedstawiamy cały plik compose.yaml, zawierający konfigurację sieci i wolumenów:

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:

Weryfikacja konfiguracji sieci i wolumenów

Po skonfigurowaniu sieci i wolumenów, upewnij się, że wszystko działa prawidłowo:

  1. 1. Uruchomienie kontenerów:
    Terminal
    
    docker compose up
                
  2. 2. Weryfikacja sieci:
    • Użyj polecenia docker network ls, aby upewnić się, że sieć task-network została utworzona.
    • Użyj polecenia docker network inspect task-network, aby sprawdzić, że wszystkie kontenery są podłączone do tej sieci.
  3. 3. Weryfikacja wolumenów:
    • Użyj polecenia docker volume ls, aby upewnić się, że wolumen db-data został utworzony.
    • Użyj polecenia docker volume inspect db-data, aby sprawdzić szczegóły wolumenu.
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION