Этот репозиторий позволяет запускать EISeg (Qt5-GUI) из контейнера Docker на Windows 11 через WSL2/WSLg.
git clone https://github.com/Oplement/PaddleSeg-ENG-Docker-.git
cd PaddleSeg-ENG-Docker-docker build -t eiseg-app .docker run -it --rm --gpus all \
-e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix:/tmp/.X11-unix \
eiseg-appРекомендуется запускать из WSL (Ubuntu) — так контейнер автоматически получает доступ к графической подсистеме WSLg.
- Windows 11 c включённым WSL2
- Дистрибутив WSL (рекомендуется Ubuntu 22.04)
- Docker Desktop с бэкендом WSL2
- Драйвер NVIDIA для Windows 11 (WDDM 3.x) с поддержкой WSL2/GPU
- Для GUI: WSLg (ставится вместе с
wsl --install)
В PowerShell от администратора:
wsl --install
wsl --update
wsl --set-default-version 2
wsl --shutdownУстановка дистрибутива (например, Ubuntu 22.04) через Microsoft Store или:
wsl --install -d Ubuntu-22.04Проверка GUI в WSL (внутри Ubuntu):
sudo apt update
sudo apt install -y x11-apps
xeyes # должно открыть окно- Установите Docker Desktop for Windows.
- Settings → General: включить Use the WSL 2 based engine.
- Settings → Resources → WSL integration: включить интеграцию для вашей Ubuntu.
- Перезапустите Docker Desktop.
Проверка доступа к GPU:
docker run --rm --gpus all nvidia/cuda:12.4.1-base-ubuntu22.04 nvidia-smi- Установите/обновите драйвер NVIDIA для Windows 11 с поддержкой WSL2.
- После установки перезагрузите ПК.
- Проверка в PowerShell:
nvidia-smiДля запуска контейнера CUDA Toolkit на хосте не требуется. Нужен только если планируете собирать CUDA-код вне контейнера.
-
Windows (хост): установщик CUDA Toolkit с сайта NVIDIA.
-
WSL (опционально):
sudo apt update sudo apt install -y nvidia-cuda-toolkit nvcc --version
-
Запускайте
docker runиз WSL — переменнаяDISPLAYи сокет X11 уже настроены. -
Если окно не появляется, проверьте в WSL:
echo $DISPLAY ls -l /tmp/.X11-unix
Должен существовать сокет
X0.
При артефактах в Qt можно попробовать:
docker run -it --rm --gpus all \
-e DISPLAY=$DISPLAY \
-e QT_QPA_PLATFORM=xcb -e QT_X11_NO_MITSHM=1 \
-v /tmp/.X11-unix:/tmp/.X11-unix \
eiseg-appВ PowerShell WSLg-сокеты доступны по другим путям. Пример:
docker run -it --rm --gpus all `
-v /run/desktop/mnt/host/wslg/.X11-unix:/tmp/.X11-unix `
-e DISPLAY=:0 `
eiseg-app-
Окно не открывается, контейнер сразу завершается. Обычно нет соединения с X11/WSLg. Запускайте из WSL, проверьте
DISPLAYи монтирование/tmp/.X11-unix. -
Illegal instruction (core dumped)на старом CPU. Причина — бинарники Paddle, собранные с AVX/AVX2/AVX-512. Нужен билд Paddle без этих инструкций либо совместимая версия (если собираете свои образы).
- Оригинальный проект: PaddleSeg / EISeg
Используйте в соответствии с лицензиями исходных проектов и NVIDIA CUDA.