首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >连接到VSCode中的远程坞容器的依赖项?

连接到VSCode中的远程坞容器的依赖项?
EN

Stack Overflow用户
提问于 2019-12-08 00:32:14
回答 2查看 2.8K关注 0票数 6

VSCode连接到远程坞容器的依赖项和步骤是什么?这样我就可以使用容器环境中的工具正确地编译和运行代码了吗?

我试着按照这里的指示行事,但运气不佳:

我的设置包括:

  • Host有VSCode,没有安装,ssh客户端已安装,ssh密钥已就位
  • 安装了Server,安装了VSCode,安装了ssh客户端和服务器
  • Docker container已经在Server上运行

Host可以通过VSCode使用Remote Development Version: 0.17.0扩展连接到Server,通过Remote - SSH Version: 0.47.2扩展版本: 0.47.2

Server可以通过VSCode连接到Docker container,使用Remote Development Version: 0.17.0扩展,通过Remote - Containers Version: 0.83.1扩展。

如何将Host连接到正在运行的Docker container

更新1小进位

我已经将这一行添加到我的~/.config/Code/User/settings.json文件中。该选项将使用消息unknown configuration setting来突出显示。

代码语言:javascript
复制
{
...
"docker.host":"tcp://localhost:23750",
...
}

在另一个终端中运行此命令:

代码语言:javascript
复制
ssh -N -L localhost:23750:/var/run/docker.sock  <user>@<serveraddr>

现在,,我可以在Remote explorer > Containers > Other Containers中看到正在运行的容器。但是,当试图连接到它时,我会得到以下错误消息。

代码语言:javascript
复制
Setting up container with bc1700db049858ba20f1c830bbeff6d6a4e04de58a2b35a61df1016788bc07db
Docker returned an error code 127, signal null, message: Command failed: docker system info
/bin/sh: docker: command not found
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-12-08 01:44:25

因此,看来码头必须安装在host机器上,以防止上次提到的错误。

注意事项:码头服务不需要在host (systemctl disable docker)中运行

考虑到这一点,以下是步骤。

Host

  1. 安装docker和ssh客户端
  2. 将用户添加到停靠组
  3. 安装VSCode
  4. 配置服务器
  5. (在下面的服务器配置之后):用
代码语言:javascript
复制
"docker.host":"tcp://localhost:23750",
  1. Server配置ssh键
  2. (每次重新启动后,在终端上运行:ssh -N -L localhost:23750:/var/run/docker.sock <user>@<serveraddr>)
  3. 运行VSCode并安装Remote Development扩展。重启VSCode
  4. 现在您应该可以在VSCode Remote explorer > Containers >其他容器中看到正在运行的容器

Server

  1. 安装docker和ssh服务器
  2. 安装VSCode (这可能不是服务器上的要求)
  3. 将用户添加到停靠组并启动容器。
票数 2
EN

Stack Overflow用户

发布于 2020-09-11 18:11:55

我意识到这个问题已经得到了答案,但是今天我在尝试设置这个问题的时候偶然发现了这个问题。我发现了另外一个问题,似乎是我的本地SSH密钥没有添加到代理中。我是按照这里的指示走的。

我正在运行Windows101909版本的Build 18363.1082。

在执行ssh-add $Env:USERPROFILE\.ssh\id_rsa并重新启动ssh-agent之后,我能够连接到远程容器,而不必使用上面显示的ssh隧道方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59231497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档