📝 Windows + Docker + VS Code Remote-Containers 故障排查与恢复#
1️⃣ 背景问题#
常见报错:
remote-containers.explorerTargetsRefresh: stream is closedAn error occurred attaching to the containerUnable to read file '…package.json'
原因一般为:
Docker context 错误(VS Code 连接到错误 Docker 引擎)
Remote-Containers / Dev Containers 扩展损坏或缓存残留
VS Code 内部缓存或 workspaceStorage 被锁
容器本身缺 shell 或 ENTRYPOINT 阻塞(本次案例排除)
2️⃣ 排查 Docker Context#
docker context ls- 正确 context 应该指向 Windows Docker 引擎:
default *- 如果 context 是
desktop-linux,切换回默认:
docker context use default- 验证容器可访问:
docker ps
docker exec -it <container> sh
docker exec -it <container> bash✅ 能进入容器说明容器正常。
3️⃣ 清理 VS Code Remote-Containers 扩展缓存#
关闭 VS Code 完全退出#
taskkill /F /IM Code.exe删除旧扩展目录(PowerShell 版本)#
# 删除 Remote-Containers / Dev Containers 扩展残留
Remove-Item -Recurse -Force "$env:USERPROFILE\.vscode\extensions\ms-vscode-remote.remote-containers*"
Remove-Item -Recurse -Force "$env:USERPROFILE\.vscode\extensions\ms-vscode-remote.remote-containers*"删除 VS Code Remote 缓存(可选)#
Remove-Item -Recurse -Force "$env:USERPROFILE\.vscode-remote"删除 VS Code 扩展缓存 & 工作区缓存#
Remove-Item -Recurse -Force "$env:APPDATA\Code\CachedExtensionVSIXs"
Remove-Item -Recurse -Force "$env:APPDATA\Code\User\workspaceStorage"如果某些文件被占用无法删除,确保 VS Code 已完全退出或用
-ErrorAction SilentlyContinue忽略错误。
4️⃣ 重装 Dev Containers 扩展#
打开 VS Code
Extensions 面板 → 搜索
Dev Containers(或 Remote-Containers)点击 Install
安装完后 Reload Window:
Ctrl+Shift+P → Developer: Reload Window5️⃣ 验证 Remote-Containers 功能#
Remote Explorer → Containers → 选择容器 → Attach
或右键 “Reopen Folder in Container”
检查是否能正常 attach,刷新是否报错
✅ 成功表示问题彻底解决。
6️⃣ 额外小技巧#
PowerShell vs CMD 命令差异
rd /s /q是 CMD 格式,PowerShell 要用Remove-Item -Recurse -Force
彻底杀进程
- Remote-Containers / Dev Containers 操作失败多数是缓存锁定问题
防病毒/防火墙
- 有时 Windows 防护会阻塞命名管道,必要时临时关闭排查
常备命令
docker context ls
docker ps
docker exec -it <container> sh
docker exec -it <container> bash
taskkill /F /IM Code.exe7️⃣ 总结#
- 确认 Docker context 正确
- 彻底清理旧扩展 + VS Code 缓存 – 主要是这个
- 重装 Dev Containers 扩展并 Reload Window
- 测试 attach / Reopen in Container
按此流程操作,VS Code Remote-Containers 连接 Docker 容器失败的绝大多数问题都能解决。
配置一个容器 使用ssh#
apt update
export LC_ALL=C.UTF-8
apt install openssh-server
apt install curl wget sudo git
apt install python3 python3-pip python3.13-venv -y
useradd -m -s /bin/bash devuser && echo "devuser:Dev@123456" | chpasswd && echo "devuser ALL=(ALL) ALL" > /etc/sudoers.d/devuser && chmod 440 /etc/sudoers.d/devuser
mkdir -p /run/sshd
chown root:root /run/sshd
chmod 755 /run/sshd
/usr/sbin/sshd
# 删除用户
#userdel -r devuser
wget https://github.com/gogs/gogs/releases/download/v0.13.4/gogs_0.13.4_linux_amd64.tar.gz
tar -xzvf gogs_0.13.4_linux_amd64.tar.gz