如何阻止VSCode打开新项目时恢复已关闭的DevContainer会话
解决VSCode打开新项目时恢复已关闭DevContainer会话的问题
针对你遇到的——即使设置window.restoreWindows为none并使用--new-window参数,打开新项目时仍会恢复之前关闭的DevContainer会话的问题,可尝试以下几种解决方案:
1. 彻底清除VSCode会话缓存
重启系统能解决问题,说明是VSCode保留了未彻底清除的会话缓存。手动清理步骤:
- 关闭所有VSCode窗口
- 执行命令删除会话缓存目录(Linux环境):
rm -rf ~/.config/Code/User/workspaceStorage rm -rf ~/.config/Code/CachedExtensions
- 同时清理DevContainers的临时状态文件:
rm -rf ~/.local/share/code-server/User/globalStorage/microsoft/vscode-dev-containers
(注:路径可能因VSCode安装方式略有不同,若找不到可根据实际安装目录调整)
2. 添加DevContainers专属禁用恢复配置
除了全局的window.restoreWindows,DevContainers有自己的恢复控制配置,在用户设置(settings.json)中添加:
{ "window.restoreWindows": "none", "workbench.editor.restoreViewState": false, "remote.containers.autoAttachExisting": false, "remote.containers.restoreWorkspace": false }
remote.containers.autoAttachExisting:禁止自动连接已存在的容器会话remote.containers.restoreWorkspace:禁止恢复之前的DevContainer工作区状态
3. 彻底终止VSCode进程后再打开新项目
有时关闭窗口后VSCode后台进程仍在运行,保留了会话状态:
- 执行命令彻底杀死所有VSCode进程:
killall code
- 再打开新项目:
code --new-window my-new-project
4. 检查Docker容器的残留状态
虽然docker ps显示容器已停止,但可能存在残留的容器元数据:
- 列出所有容器(包括已停止的):
docker ps -a
- 删除之前项目的DevContainer容器:
docker rm <容器ID或名称>
删除后再打开新项目,避免VSCode检测到残留容器并尝试恢复。
内容的提问来源于stack exchange,提问作者aphilas
相关产品推荐
相关产品推荐

