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

时间:2019-12-08 00:32:14

标签: docker visual-studio-code remote-server

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

我尝试按照以下说明进行操作,但运气不佳:

我的设置涉及:

  • Host,带有VSCode,未安装docker ,已安装ssh客户端,已安装ssh密钥
  • Server,具有VSCode,已安装docker,已安装ssh客户端和服务器
  • Docker container已在Server上运行

Host可以通过使用Server扩展名的VSCode通过Remote Development Version: 0.17.0扩展名连接到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

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

在另一个终端中开始此推荐:

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

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

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

2 个答案:

答案 0 :(得分:0)

因此,看来必须在host计算机上安装docker ,以防止最后提到的错误。

注意:docker服务不需要需要在hostsystemctl 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配置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. 将您的用户添加到docker组并启动您的容器

答案 1 :(得分:0)

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

我正在运行Windows 10版本1909 Build 18363.1082。

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