使用 Docker 排查 Visual Studio 开发方面的问题

适用于: Visual Studio

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

未启用卷共享。 启用用于 Windows 的 Docker CE 设置中的卷共享(仅 Linux 容器)

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

  1. 右键单击通知区域中的“Docker for Windows”,并选择“设置”

  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. 在编辑窗格中,添加带有 Docker 映像所需位置值的 graph 属性设置:

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

    Docker 文件共享的屏幕截图。

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

容器类型不匹配

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

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

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

其他问题

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

参考