设置:
- 在WSL2(5.4.72-microsoft-standard-WSL2(中运行的Ubuntu 20.04发行版
- Windows中安装的VS代码版本1.55.2
- Docker版本19.03.8,构建afacb8b7f0,安装在WSL2中
- docker compose版本1.29.0,内部版本07737305安装在WSL2中
- 本地安装的VS Code v0.166.1远程容器扩展(我找不到在WSL2中显式安装此扩展的选项,但我不确定这是否重要,请参阅下文(
原始错误:
当我打开命令选项板并输入Remote-Containers: Rebuild and Reopen in Container
时,我会收到错误"找不到"docker"命令。确保Docker已安装在弹出窗口中。
我尝试过的:
尝试1
首先,我认为远程容器扩展希望在windows中执行docker命令,而不是WSL2。由于我没有在Windows上安装Docker Desktop,所以不可能在Windows中执行Docker命令。所以,我尝试从市场v0.165.0下载一个特定版本的远程容器扩展文件,将其复制到WSL2/home/kevinsuedmersen/.vscode-server/extensions
内的VS扩展文件夹中,然后从VS代码扩展面板手动安装。然而,这也在本地安装了远程容器扩展,因此可能在Windows上。我不确定local是否意味着该扩展在全局范围内可用,但尽管如此,我仍然会收到一个错误,即找不到docker命令,如上所述。
尝试2
我注意到,当我在Windows上打开PowerShell时,我可以通过在所有docker命令(例如wsl docker run hello-world
(前面加上wsl
来使用WSL2中的docker守护进程。因此,我转到VS代码,在设置(设置>远程>容器>Docker路径(中,我将Docker路径从docker
更改为wsl docker
,但随后,我得到了这个错误Docker Desktop WSL 2 backend required
。在另一台笔记本电脑上也是如此,我实际上安装了Docker Desktop并启用了WSL2后端。
尝试3
我尝试将VS代码中的docker路径更改为WSL2/var/run/docker.sock
中docker套接字的完整路径,但随后出现错误Current user does not have permission to run 'docker'. Try adding the user to the 'docker' group
。我的当前用户kevinsuedmersen
已经是docker组的成员。
如有任何建议或指示,我们将不胜感激。
在VS远程容器扩展的GitHub Repo上给出了答案:https://github.com/microsoft/vscode-remote-release/issues/4914