从 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
答案 0 :(得分:0)
因此,看来必须在host
计算机上安装docker ,以防止最后提到的错误。
注意:docker服务不需要需要在host
(systemctl disable docker
)中运行
请牢记这些步骤。
Host
:
~/.config/Code/User/settings.json
"docker.host":"tcp://localhost:23750",
Server
配置ssh密钥ssh -N -L localhost:23750:/var/run/docker.sock <user>@<serveraddr>
)Remote Development
扩展名。重新启动VSCode Remote explorer
> Containers
>其他容器中看到正在运行的容器 Server
:
答案 1 :(得分:0)
我知道这个问题已经得到回答,但是今天我尝试自己设置时偶然发现了这个问题。我发现另一个问题似乎是我的本地SSH密钥尚未添加到代理中。我正在按照here的说明进行操作。
我正在运行Windows 10版本1909 Build 18363.1082。
完成ssh-add $Env:USERPROFILE\.ssh\id_rsa
并重新启动ssh-agent
之后,我能够连接到远程容器,而不必采用上面显示的ssh隧道方法。