使用 Docker 排查 Visual Studio 开发问题

适用于: Visualstudio

使用 Visual Studio 容器工具时,在生成或调试应用程序时可能会遇到问题。 本文介绍这些问题的一些常见故障排除步骤。

卷共享未启用。 在 Docker CE for Windows 设置中启用卷共享, (Linux 容器仅)

仅当将 Hyper-V 与 Docker 配合使用时,才需要管理文件共享。 如果使用 WSL 2,则不需要执行以下步骤,并且文件共享选项将不可见。 若要解决该问题,请执行下列操作:

  1. 在通知区域中右键单击 “适用于 Windows 的 Docker ”,然后选择“ 设置”。

  2. 选择“ 资源>文件共享 ”并共享需要访问的文件夹。 可以共享整个系统驱动器,但不建议这样做。

    共享驱动器的屏幕截图。

提示

未配置 共享驱动器 时,Visual Studio 会提示你。

无法启动调试

此问题的一个原因可能与用户配置文件文件夹中的调试组件陈旧有关。 执行以下命令以删除这些文件夹,以便在下一个调试会话中下载最新的调试组件。

  • del %userprofile%\vsdbg
  • del %userprofile%\onecoremsvsmon

调试应用程序时特定于网络的错误

尝试从 清理容器主机网络执行可下载的脚本,这将刷新主机上的网络相关组件。

装载被拒绝

使用 Docker for macOS 时,在引用文件夹 /usr/local/share/dotnet/sdk/NuGetFallbackFolder 时可能会遇到错误。 将文件夹添加到 Docker 中的“ 文件共享 ”选项卡。

Docker 用户组

使用容器时,可能会在 Visual Studio 中遇到以下错误:

当前用户必须位于“docker-users”组中才能使用 Docker Desktop。 将自己添加到“docker-users”组,然后注销 Windows。

必须是“docker-users”组的成员才能拥有使用 Docker 容器的权限。 若要将自己添加到 Windows 10 或更高版本中的组,请执行以下步骤:

  1. 在“开始”菜单中,打开 “计算机管理”。
  2. 展开 “本地用户和组”,然后选择“ ”。
  3. 找到 docker-users 组,右键单击并选择“ 添加到组”。
  4. 添加一个或多个用户帐户。
  5. 注销并重新登录,使这些更改生效。

还可以使用 net localgroup 管理员命令提示符处的 命令将用户添加到特定组。

net localgroup docker-users DOMAIN\username /add

在 PowerShell 中,使用 Add-LocalGroupMember 函数。

磁盘空间不足

默认情况下,Docker 将映像存储在 %ProgramData%/Docker/ 文件夹中,该文件夹通常位于系统驱动器 C:\ProgramData\Docker\ 上。 若要防止映像占用系统驱动器上的宝贵空间,可以更改映像文件夹位置。 为此,请执行以下操作:

  1. 右键单击任务栏上的 Docker 图标,然后选择 “设置”。

  2. 选择 “Docker 引擎”。

  3. 在编辑窗格中,添加 graph 具有 Docker 映像所需位置值的属性设置:

       "graph": "D:\\mypath\\images"
    

    Docker 文件共享的屏幕截图。

  4. 选择“ 应用 & 重启”。 这些步骤修改 %ProgramData%\docker\config\daemon.json 处的配置文件。 不会移动以前生成的映像。

容器类型不匹配

向项目添加 Docker 支持时,可以选择 Windows 或 Linux 容器。 如果 Docker Server 主机未配置为运行与项目目标相同的容器类型,则会看到类似于以下内容的错误:

Docker 主机和项目不匹配的屏幕截图。

若要解决此问题,请右键单击系统托盘中的适用于 Windows 的 Docker 图标,然后选择“ 切换到 Windows 容器...” 或“ 切换到 Linux 容器...”

Other issues

有关遇到的任何其他问题,请参阅 Microsoft/DockerTools 问题。

References