VSCode Docker插件看不到容器,主因是Docker CLI未连上守护进程或容器未运行;需执行docker version确认Client和Server均正常,且docker ps有输出。

装完插件却看不到容器?大概率不是插件没装好,而是 Docker CLI 没连上 daemon,或者你根本没启动容器。
docker version 命令必须能同时输出 client 和 server
VSCode Docker 插件完全依赖 docker CLI 调用本地守护进程。它不自己启动 dockerd,也不绕过系统权限。
- 在终端执行
docker version,必须看到 Client 和 Server 两段版本信息;如果只显示 client 或报Cannot connect to the Docker daemon,插件必然空白 - Windows/macOS:确保 Docker Desktop 已启动(托盘图标常驻),且设置里勾选了 Start Docker Desktop when you log in
- Linux:运行
sudo systemctl is-active docker确认服务状态;再执行sudo usermod -aG docker $USER,然后**完全退出当前桌面会话并重登**(仅重启 VSCode 不够) - 检查
docker ps是否有输出——插件的 Containers 节点只显示运行中容器,docker ps -a里的已退出容器不会出现
右键 Dockerfile → Build Image 失败,90% 是上下文路径错了
插件调用的是 docker build,但它默认把 Dockerfile 所在目录当作构建上下文(build context)。一旦 COPY 的文件不在这个目录或其子目录下,就直接报错“no such file or directory”。
- 比如 Dockerfile 在
./src/Dockerfile,但写了COPY package.json .,而package.json其实在项目根目录——构建必失败 - 解决方法一:把 Dockerfile 移到项目根目录,和所有被 COPY 的文件放一起
- 解决方法二:手动改命令——在插件弹出构建对话框时,点击右下角
Advanced,填入-f ./src/Dockerfile和上下文路径.(即项目根目录) - 别忽略
.dockerignore:它影响构建上下文体积,但插件不校验内容是否合理;放错规则会导致 COPY 失败或镜像臃肿
容器在插件里显示为 “Running”,但点 View Logs 什么也没有
不是插件卡住,是容器根本没输出日志,或者主进程已经退出。
- 典型场景:
docker run nginx启动后立刻退出(因为 nginx 默认前台运行但没挂起),插件里根本不会列出它;正确写法是docker run -d nginx - 如果容器启动后秒退,先在终端跑
docker logs <container-id>,看是否报端口占用、配置文件缺失、CMD 执行失败等错误 - View Logs 面板有 2–3 秒延迟,新日志不会实时刷出;别刚敲完
echo hello就关窗口 - Attach Shell 也一样:只对持续运行的进程有效;用
sleep 10启动的容器,shell 连上就断,不是 bug
想远程连接 WSL2 或 Linux 服务器上的 Docker daemon
插件默认连 /var/run/docker.sock(Unix socket),不支持跨主机自动发现。必须显式告诉它去哪儿找。
- WSL2 用户:确保 Docker Desktop 设置中启用了 Use the WSL 2 based engine,并把目标发行版设为默认;VSCode 必须在 WSL 环境中打开项目(用
code .启动),不能在 Windows 下打开 WSL 路径 - 远程 Linux 服务器:在 VSCode 设置里搜
docker.host,填入ssh://user@host或tcp://host:2376(后者需服务端开启 TCP 监听并配置 TLS) - 环境变量
DOCKER_HOST对插件生效,但必须在 VSCode 启动前设置好;改完要彻底关闭 VSCode 再开,否则读不到新值
最容易被忽略的其实是用户组权限和构建上下文——前者让插件连不上,后者让构建总失败,但错误提示都藏在终端小字里,不盯输出面板根本看不到。


















