在远程SSH主机中使用VSCode打开容器

11
使用远程开发扩展包,Visual Studio Code能够打开运行在当前系统上的Docker容器,并且打开通过SSH连接的远程主机上的文件夹。
如果有一个运行在远程SSH主机上的Docker容器,VSCode如何在此容器中打开文件/文件夹?
1个回答

16

所以你想在远程SSH服务器的容器内打开一个文件夹。以下是我实现它的步骤。

步骤1

在VSCode中安装Remote Development扩展并打开其控制面板。

这里输入图片描述

步骤2

将VSCode连接到远程SSH服务器。

这里输入图片描述

步骤3

连接后,您会看到绿色的勾号,表示您已连接到远程服务器。现在从Remote Explorer下拉菜单中选择Containers 。您将看到一个容器列表。如果您没有看到容器列表或者如果您看到本地容器列表,则请按照以下方式操作,否则转到步骤4

这里输入图片描述

步骤3.1

通过在终端中执行以下命令向您的docker添加新上下文。

$ docker context create my-remote-docker-machine --docker "host=ssh://username@host:port"

$ docker context ls

$ docker context use my-remote-docker-machine

步骤3.2

$ docker ps -a

您会注意到上面的命令现在列出了远程服务器上的所有容器(这是因为您刚刚添加的上下文)

现在回到VScode,从侧边栏菜单中点击Docker,您会注意到一个警告连接失败。Docker是否在运行?详细了解此错误

enter image description here

故障排除

验证远程机器上是否安装了Docker扩展。截至2020年2月,VS Code存在一个错误,如果它已经在本地安装了Docker扩展,则会阻止远程安装该扩展。此错误定于在VS Code 1.43版本中修复。一种远程安装扩展的解决方法在此处描述

  • 卸载 VS Code 中的 Docker 扩展。关闭所有 VS Code 窗口。
  • 重新启动 VS Code。使用“远程-SSH:连接到主机…”连接到远程计算机。
  • 打开扩展市场并在远程计算机上安装 Docker 扩展(见下面的屏幕截图)。

输入图像描述

  • 一旦 Docker 扩展在远程安装成功,也可以在本地安装。

步骤四

从容器列表中选择要将 VSCode 连接到的目标容器。

输入图像描述

步骤五

哇!VSCode 已连接到远程服务器内部的容器,您可以单击资源管理器并选择任何文件夹/目录,然后开始在该目录中工作。

输入图像描述


在第三步中选择“容器”会列出本地机器上的容器,而不是远程机器上的容器。我们如何列出远程机器上的容器? - Anoop K. Prabhu
@AnoopK.Prabhu请确保您与远程服务器的连接成功。 - Hamid Ali
是的,是这样。连接成功后,绿色符号也会显示。https://ibb.co/D1HW3Vw 是我连接到远程机器后看到的界面。否则,我将在本地计算机中查找Docker。 - Anoop K. Prabhu
1
@AnoopK.Prabhu,我发现我的Docker主机已经设置为远程了,这就是它对我有效的主要原因。但是,我尝试通过连接到不同的远程服务器来复制您的用例。我通过更新答案分享我的发现。请看一下。热切等待反馈。 - Hamid Ali
更新后的答案对我有用。 实际上,由于远程机器在一个需要密码和两步验证的 VPN 后面,我不得不自己做一些更改。这使得使用“docker context”变得困难。端口转发 docker.sock 有助于解决这个问题。 - Anoop K. Prabhu
1
太棒了!@AnoopK.Prabhu,随意接受此答案,以便其他人也可以关注它。谢谢。 - Hamid Ali

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接