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

nic*_*ico 6 remote-server docker visual-studio-code

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可以Docker container使用Remote Development Version: 0.17.0扩展名通过 VSCode连接到,通过扩展Remote - Containers Version: 0.83.1名。

如何连接Host到 Running Docker container

更新 1 小额预付款

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

{
...
"docker.host":"tcp://localhost:23750",
...
}
Run Code Online (Sandbox Code Playgroud)

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

ssh -N -L localhost:23750:/var/run/docker.sock  <user>@<serveraddr>
Run Code Online (Sandbox Code Playgroud)

现在我可以看到正在运行的容器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
Run Code Online (Sandbox Code Playgroud)

nic*_*ico 2

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

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

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

Host:

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

Server:

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