# Практикум: «Работа с реляционными и нереляционными СУБД» #### Установка Docker Desktop на Windows - Требования: - Windows 10 21H2/22H2 (19044/19045) или Windows 11 - Включенная виртуализация в BIOS/UEFI (Intel VT-x/AMD-V) - Рекомендовано: WSL 2 - Включить компоненты Windows (PowerShell от имени администратора): ```powershell dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart ``` Перезагрузите компьютер. - Установить ядро WSL2 (если требуется): ```powershell wsl --install --no-distribution wsl --update ``` - Скачать и установить Docker Desktop: см. страницу загрузки [Docker Desktop for Windows](https://www.docker.com/products/docker-desktop/). Во время установки оставьте галочку «Use WSL 2 based engine». - Первый запуск и базовые настройки: - Войти с Docker ID (или пропустить для локальной работы) - Settings → General: убедитесь, что «Use the WSL 2 based engine» включен - Settings → Resources → WSL Integration: включите интеграцию для нужных дистрибутивов WSL - Проверка установки: ```powershell docker version docker run hello-world docker run --rm -it alpine:3.20 echo "Docker OK" ``` ## PostgreSQL with Docker - **Установите Docker Desktop**: Убедитесь, что Docker установлен и запущен на вашем компьютере. - **Скачать образ Postgres**: ```bash docker pull postgres:16 ``` - **Запустить контейнер PostgreSQL**: ```bash docker run --name pg-local -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -e POSTGRES_DB=appdb -p 5432:5432 -v pgdata:/var/lib/postgresql/data -d postgres:16 ``` - **Проверить, что контейнер запущен**: ```bash docker ps ``` - **Подключение к PostgreSQL**: - С хоста через psql (Windows PowerShell, macOS, Linux): ```bash psql -h localhost -p 5432 -U postgres -d appdb ``` При запросе пароля введите: `postgres`. - URI‑строка подключения (подходит для приложений/GUI‑клиентов): ``` postgres://postgres:postgres@localhost:5432/appdb ``` - Через psql внутри контейнера: ```bash docker exec -it pg-local psql -U postgres -d appdb ``` - Параметры для GUI‑клиента (pgAdmin, DBeaver и др.): - Host: `localhost` - Port: `5432` - User: `postgres` - Password: `postgres` - Database: `appdb` - Быстрая проверка подключения (внутри psql): ```sql SELECT version(); ``` - **Полезные команды**: ```bash # Остановить / запустить / удалить контейнер docker stop pg-local docker start pg-local docker rm -f pg-local # Удалить том с данными (необратимо) docker volume rm pgdata ```