Visual Studio无法调试/附加Docker容器提示访问被拒绝求助
目标
调试运行在本地Docker容器中的.NET5 API。
问题描述
Visual Studio报错无法执行指定docker命令,报错截图如下:
已尝试但未解决的操作
- 以管理员身份运行VS
- 给源代码和Docker相关文件夹授予Everyone权限,并移除只读属性
- 在PowerShell和Visual Studio终端窗口中执行相同命令(
docker ps ...),无权限问题,可正常运行 - 说明1:对应容器正在运行,功能正常
- 说明2:Visual Studio版本为16.11.5最新更新版
- 说明3:该问题在一次Windows系统更新后出现
解决方案
按以下优先级逐一尝试:
- 清理Visual Studio组件缓存
完全关闭所有VS窗口,删除以下路径的所有缓存文件后重启VS:
%LOCALAPPDATA%\Microsoft\VisualStudio\16.0_*\ComponentModelCache%APPDATA%\Microsoft\VisualStudio\16.0_*\DockerTools
- 修复Docker Desktop集成配置
打开Docker Desktop设置,进入「General」标签,确认已勾选「Use the WSL 2 based engine」;再进入「Resources > WSL Integration」标签,确认当前使用的WSL发行版的集成开关已开启,保存设置后重启Docker Desktop。 - 重装Visual Studio容器开发组件
打开Visual Studio Installer,选择对应VS实例点击「修改」,切换到「单个组件」标签,搜索「容器开发工具」,取消勾选后点击「修改」完成卸载,重启安装器后重新勾选该组件安装,完成后重启VS。 - 重置项目Docker启动配置
删掉项目Properties目录下的launchSettings.json文件中Docker相关的配置节点,右键项目选择「添加 > Docker 支持」,自动生成新的Docker启动配置后重新尝试调试。 - 检查Windows防火墙规则
打开Windows Defender防火墙高级设置,在出站规则中确认Visual Studio、Docker Desktop的所有规则均为允许状态,也可临时关闭防火墙测试是否为规则拦截导致的调用失败。
内容的提问来源于stack exchange,提问作者Mario
相关产品推荐
相关产品推荐

