Устранение неполадок при разработке с Docker в Visual Studio
Область применения: Visual Studio
Используя средства Visual Studio для работы с контейнерами, вы можете столкнуться с некоторыми проблемами при создании или отладке приложения. В этой статье приведены некоторые распространенные действия по устранению неполадок.
Совместное использование тома не включено. Включите совместное использование тома в параметрах Docker CE для Windows (только для контейнеров Linux)
Общий доступ к файлам необходимо управлять только в том случае, если вы используете Hyper-V с Docker. Если вы используете WSL 2, выполните следующие действия, и параметр общего доступа к файлам не будет отображаться. Для разрешения этой проблемы:
Щелкните правой кнопкой мыши Docker for Windows (Docker для Windows) в области уведомлений, а затем выберите Параметры.
Выберите Ресурсы>Общий доступ к файлам и предоставьте общий доступ к нужной папке. Вы также можете предоставить доступ ко всему системному диску, однако мы не рекомендуем делать это.
Совет
Visual Studio запрашивает, когда общие диски не настроены.
Невозможно начать отладку
Одна из причин этой проблемы может быть связана с устаревшими компонентами отладки в папке профиля пользователя. Чтобы последние компоненты отладки скачались при следующем сеансе отладки, выполните следующие команды для удаления папок:
del %userprofile%\vsdbg
del %userprofile%\onecoremsvsmon
Ошибки, характерные для сетей при отладке приложения
Попробуйте выполнить сценарий, который можно скачать из репозитория GitHub для очистки сетей узлов контейнера, который обновит связанные с сетью компоненты на вашем хост-компьютере.
Отказ в подключении
При использовании Docker для macOS может возникнуть ошибка, ссылающаяся на папку /usr/local/share/dotnet/sdk/NuGetFallbackFolder. Добавьте папку на вкладку "Общий доступ к файлам" в Docker.
Группа пользователей Docker
При работе с контейнерами в Visual Studio может возникнуть следующая ошибка.
Текущий пользователь должен находиться в группе docker-users для использования Docker Desktop. Добавьте себя в группу docker-users, а затем выйдите из Windows.
Для работы с контейнерами Docker требуются разрешения, предоставляемые участникам группы docker-users. Чтобы добавить себя в эту группу в Windows 10 или более поздней версии, сделайте следующее:
- В меню "Пуск" откройте Управление компьютером.
- Разверните локальные пользователи и группы и выберите группы.
- Найдите группу docker-users, щелкните правой кнопкой мыши и выберите команду "Добавить в группу".
- Добавьте свою учетную запись пользователя или несколько учетных записей.
- Выйдите из системы и войдите снова, чтобы изменения вступили в силу.
Добавлять пользователей в группы можно также с помощью команды net localgroup
в командной строке администратора.
net localgroup docker-users DOMAIN\username /add
В PowerShell используйте командлет Add-LocalGroupMember.
Недостаточно места на диске
По умолчанию Docker хранит изображения в папке %ProgramData%/Docker/ , которая обычно находится на системном диске C :\ProgramData\Docker\. Чтобы образы не занимали место на системном диске, можно изменить расположение папки образов. Для этого:
Щелкните правой кнопкой мыши значок Docker на панели задач и выберите "Параметры".
Выберите Docker Engine (Обработчик Docker).
На панели редактирования добавьте параметр свойства
graph
, указывающий требуемое расположение для образов Docker:"graph": "D:\\mypath\\images"
Выберите "Применить" и " Перезапустить". Эти действия изменяют файл конфигурации: %ProgramData%\docker\config\daemon.json. Ранее созданные образы не перемещаются.
Несоответствие типов контейнеров
При добавлении в проект поддержки Docker выберите контейнер Windows или Linux. Если узел Docker Server не настроен для запуска того же типа контейнера, что и целевой объект проекта, появится ошибка, аналогичная следующим:
Чтобы устранить эту проблему, щелкните правой кнопкой мыши значок Docker для Windows в области систем и выберите "Переключиться на контейнеры Windows" или "Переключиться на контейнеры Linux...".
Другие проблемы
При возникновении других проблем дополнительные сведения см. в репозитории Microsoft/DockerTools.