VS代码“将Visual Studio代码附加到远程容器”错误

时间:2020-07-09 15:08:35

标签: docker visual-studio-code dockerfile containers

我正在尝试在远程容器中进行开发。

我在本地Windows机器上运行VS Code。 我有一台运行docker和一堆容器的linux机器。

我在VS Code中安装了“ Remote-Containers”和“ Remote-SSH”扩展。

可以使用VS Code连接到我的Linux计算机,并且我可以看到正在运行的容器

可以右键单击一个容器,然后选择“附加外壳”。这很好用: enter image description here

当我右键单击一个容器并选择“附加Visual Studio代码”时,我得到一个错误:

enter image description here

更新

发生上述错误是因为(出于某种原因?)即使我们完全在远程计算机上,docker也必须在Windows本地运行。我已经在本地安装并运行docker。

现在,当我右键单击一个正在运行的容器时,会出现另一个错误:

enter image description here

当然容器正在运行-我看到了它们。

如何将Visual Studio代码成功附加到正在运行的远程容器上?

2 个答案:

答案 0 :(得分:1)

这可能不是一个真正的答案,但是对于评论来说太多了。

我相信您在远程服务器上有本地计算机和docker。

要做的第一件事是在本地计算机上安装docker并对其进行配置,以便在远程服务器上寻找docker主机。

然后,您可以在计算机上创建一个.devcontainer.json。如果安装了扩展程序,VSCode将为您提供将其作为容器环境打开的功能。由于您的Docker主机位于远程,因此这将在您的服务器而不是本地计算机上发生。

完成设置后,除其他事项外,我还遵循了本指南。尤其需要SSH-Agent才能使远程docker主机正常工作。 https://code.visualstudio.com/docs/remote/containers-advanced#_a-basic-remote-example

这是我的example .devcontainer file

现在回到您的第一个问题,我认为您将无法在未作为开发容器启动的容器上使用远程容器扩展。这是因为vscode首次安装时会在其中安装一堆东西。与SSH扩展类似。我可能在这方面做错了,所以要加一点盐。

也许还值得注意的是,一旦您通过SSH连接到服务器,然后在远程安装了常规docker扩展(不是远程容器扩展),您将在其中看到您的docker映像。但这并不意味着您将能够像从本地容器到远程容器那样进行连接。为此,您需要配置Docker远程主机。

答案 1 :(得分:0)

做完一些研究后,我也遇到了类似的问题。

但是当我在Ubuntu中通过snap安装vs代码时,我遇到了这个问题。

可以尝试卸载VS Code并重新安装。

如果Docker安装正确,它应该可以工作。