Лабораторная работа 1: Развертывание PostgreSQL в Docker и подключение к БД через IntelliJ IDEA

  1. Откройте терминал (Linux/macOS) или командную строку/PowerShell (Windows)
  2. Проверьте наличие Docker, выполнив команду:
    docker --version
  3. Если Docker не установлен:
    • Скачайте Docker Desktop с официального сайта
    • Установите, следуя инструкциям мастера установки
    • Для Linux может потребоваться дополнительная настройка:
      sudo systemctl start docker
  4. Проверьте наличие Docker Compose:
    docker-compose --version
  5. Если не установлен:
    • Для Windows устанавливается вместе с Docker Desktop
  6. Создайте папку для проекта:
    • Linux/macOS:
      mkdir ~/postgres_docker && cd ~/postgres_docker
    • Windows:
      mkdir C:\postgres_docker && cd C:\postgres_docker
  7. Создайте файл конфигурации:
    nano docker-compose.yml
  8. Вставьте следующую конфигурацию:

version: '3.8'
services:
  postgres:
    image: postgres:15
    environment:
      POSTGRES_USER: admin
      POSTGRES_PASSWORD: admin
      POSTGRES_DB: test_db
    ports:
      - "5432:5432"
    volumes:
      - postgres_data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U admin -d test_db"]
      interval: 5s
      timeout: 5s
      retries: 5
volumes:
  postgres_data:
  1. Сохраните файл в nano:
    Ctrl+O, Enter, Ctrl+X
  2. Запустите контейнер:
    docker-compose up -d
  3. Проверьте статус:
    docker ps --filter "name=postgres"
  4. Проверьте работу PostgreSQL:
    docker exec -it postgres_docker_postgres_1 psql -U admin -d test_db -c "SELECT version();"
  5. Откройте IntelliJ IDEA
  6. Откройте панель Database:
    • Через меню: View → Tool Windows → Database
    • Горячие клавиши:
      Alt+1
      (Win/Linux) /
      Cmd+1
      (macOS)
  7. Добавьте новый источник данных:
    • Нажмите + → Data Source → PostgreSQL
  8. Заполните параметры:
    • Host: localhost
    • Port: 5432
    • Database: test_db
    • User: admin
    • Password: admin
  9. Проверьте подключение (Test Connection)
  10. Сохраните (OK)
  11. Создайте таблицу:
    • Разверните Schemas → public → Tables
    • ПКМ → New → Table
    • Укажите:
      • Name: users
      • Columns:
        • id — serial, PRIMARY KEY
        • name — varchar(100)
        • email — varchar(100), UNIQUE
    • Выполните:
      Ctrl+Enter
  12. Добавьте данные:
    • ПКМ на таблице users → New → Edit Data
    • Добавьте тестовые данные
    • Сохраните:
      Ctrl+S
  13. Выполните запрос:
    • Откройте вкладку SQL
    • Введите:
      SELECT * FROM users;
    • Выполните (Execute)
  14. Остановите контейнер:
    docker-compose down
  15. Для полной очистки:
    docker-compose down -v
  16. Проверьте остановку:
    docker ps -a
  17. Очистите неиспользуемые образы и тома (при необходимости):
    docker system prune -a

    ⚠️ Команда удалит неиспользуемые контейнеры, образы, сети и кэш. Будьте внимательны!