Как настроить Docker Desktop на Windows и WSL2 таким образом, чтобы в volume на хост машине владельцем файлов был текущий пользователь?

Для настройки Docker Desktop на Windows и WSL2 таким образом, чтобы владельцем файлов в volume на хост-машине был текущий пользователь, вам понадобятся несколько шагов.

  1. Установка и настройка Docker Desktop на Windows:
  • Скачайте установочный файл Docker Desktop для Windows с официального сайта Docker.
  • Запустите установку и следуйте инструкциям мастера установки.
  • Когда установка будет завершена, откройте Docker Desktop, щелкнув по иконке в системном трее.
  • В настройках Docker Desktop перейдите на вкладку "Resources -> WSL Integration".
  • Поставьте галочку напротив имен WSL-дистрибутивов, с которыми вы хотите использовать Docker. Нажмите кнопку "Apply & Restart" для применения изменений.
  1. Установка WSL2:
  • Откройте PowerShell от имени администратора.
  • Введите следующую команду, чтобы включить подсистему Windows для Linux:
     dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
  • Введите следующую команду, чтобы включить виртуализацию уровня ядра:
     dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  • Скачайте и установите пакет обновления ядра WSL2 для Windows 10 с официального сайта Microsoft: https://aka.ms/wsl2kernel.
  • Введите следующую команду, чтобы установить WSL2 как основную версию:
     wsl --set-default-version 2
  • Установите дистрибутив Linux из Microsoft Store или с официального сайта.
  • Запустите установленный дистрибутив Linux и выполните настройку.
  1. Настройка Docker и WSL Integration:
  • Запустите командную строку WSL из меню пуск.
  • Введите следующую команду, чтобы убедиться, что Docker использует WSL2:
     wsl --set-version <distro_name> 2
  • Вернитесь в настройки Docker Desktop и перейдите на вкладку "Settings -> Resources -> WSL Integration".
  • Поставьте галочку напротив имени дистрибутива, который вы установили и настроили ранее.
  • Нажмите кнопку "Apply & Restart" для применения изменений.
  1. Настройка volume с правильными разрешениями:
  • В командной строке WSL перейдите в директорию вашего проекта, где вы планируете использовать Docker.
  • Создайте новую папку внутри вашего проекта, используя команду mkdir:
     mkdir data
  • Запустите контейнер с монтированием этой папки в volume и установкой правильных разрешений:
     docker run -v $(pwd)/data:/path/to/volume -u $(id -u):$(id -g) <image_name>

Замените /path/to/volume нужным путем к вашему volume и <image_name> на имя вашего образа Docker.

Теперь, при запуске контейнера для вашего проекта, вы будете иметь правильные разрешения на файлы в volume на хост-машине, соответствующие текущему пользователю в WSL2.