2

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

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

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

可以在 VS Code 中连接到我的 linux 机器,并且可以看到正在运行的容器

可以右键单击一个容器并选择“附加外壳”。这工作正常: 在此处输入图像描述

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

在此处输入图像描述

更新

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

现在,当我右键单击正在运行的容器时,我得到一个不同的错误:

在此处输入图像描述

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

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

4

2 回答 2

1

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

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

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

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

当我进行设置时,我遵循了本指南的其他内容。特别是需要 SSH-Agent 才能让远程 docker 主机正常工作。https://code.visualstudio.com/docs/remote/containers-advanced#_a-basic-remote-example

这是我的一个示例 .devcontainer 文件

现在回到您最初的问题,我认为您将无法在未作为开发容器启动的容器上使用远程容器扩展。这是因为 vscode 在第一次设置时会在那里安装一堆东西。类似于 SSH 扩展。我在这方面可能是错的,所以请谨慎对待。

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

于 2020-07-09T16:33:49.997 回答
0

在做了一些研究后,我也遇到了类似的问题,我发现问题出在我的安装上。

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

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

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

于 2020-07-09T16:30:51.273 回答