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

Dependencies to connect to a remote docker container in VSCode?

VSCode 连接到远程 docker 容器的依赖项和步骤是什么?所以我可以在我的容器环境中使用工具正确编译和 运行 代码?

我尝试按照此处的说明进行操作,但运气不佳:

我的设置涉及:

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

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

如何将 Host 连接到 运行ning Docker container

更新 1 小额预付款

我已将此行添加到我的 ~/.config/Code/User/settings.json 文件中。该选项高亮显示一条消息 unknown configuration setting

{
...
"docker.host":"tcp://localhost:23750",
...
}

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

ssh -N -L localhost:23750:/var/run/docker.sock  <user>@<serveraddr>

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

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

因此,似乎 docker 必须 安装在 host 机器上以防止最后提到的错误。

注意:docker服务不需要运行宁在host (systemctl disable docker)

考虑到这一点,这些是步骤。

Host:

  1. 安装docker和ssh客户端
  2. 将您的用户添加到 docker 组
  3. 安装VSCode
  4. 配置服务器
  5. (在下面的服务器配置之后):用
  6. 编辑~/.config/Code/User/settings.json
"docker.host":"tcp://localhost:23750",
  1. Server
  2. 配置您的 ssh 密钥
  3. (每次在终端上重新启动 运行 后:ssh -N -L localhost:23750:/var/run/docker.sock <user>@<serveraddr>
  4. 运行 VSCode 并安装 Remote Development 扩展。重启 VSCode
  5. 现在您应该会在 VSCode Remote explorer > Containers > 其他容器
  6. 中看到您的 运行ning 容器

Server:

  1. 安装docker和ssh服务器
  2. 安装VSCode(服务器可能不需要)
  3. 将您的用户添加到 docker 组并启动您的容器

我知道这个问题已经得到解答,但我今天在尝试自己设置时偶然发现了这个问题。我发现另一个问题似乎是我的本地 SSH 密钥没有添加到代理中。我按照说明 here.

我是运行 Windows 10 Version 1909 Build 18363.1082.

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