【问题标题】:VS Code "Attach Visual Studio Code" to remote container errorVS Code“将 Visual Studio Code”附加到远程容器错误
【发布时间】:2020-07-09 15:08:35
【问题描述】:

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

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

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

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

可以右键单击一个容器并选择“附加外壳”。这工作正常:

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

更新

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

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

容器当然在运行——我看到了。

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

【问题讨论】:

    标签: docker visual-studio-code dockerfile containers


    【解决方案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 远程主机。

    【讨论】:

    • 谢谢。我现在可以本地在容器中运行 VS Code 和开发。我可以在本地启动任何容器并右键单击它,“附加 VS 代码”在本地容器上工作。它没有让我选择在远程容器上执行此操作。事实上,Remote-Containers 似乎没有安装在远程机器上(只是在本地),我不知道如何强制。我卸载并重新安装。没运气。我真的不想制作 .devcontainer。我只想附加到现有容器。我已经放弃了,现在回到emacs
    • 看到你的问题是你正在尝试做一些初始动作。您不应该通过 SSH 连接到远程然后使用容器扩展。您要做的是在本地安装 docket 并将其配置为使用远程主机。然后,您只需使用本地 Vs 代码 docker 扩展。它将使用远程主机,因此您可以在远程容器上工作。
    【解决方案2】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-06
      • 2020-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-20
      • 1970-01-01
      • 2018-02-12
      相关资源
      最近更新 更多