vscode 远程连接 docker 容器进行 C++ 代码调试实践
Posted 陆嵩
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vscode 远程连接 docker 容器进行 C++ 代码调试实践相关的知识,希望对你有一定的参考价值。
vscode 远程连接 docker 容器进行 C++ 代码调试实践
vscode 是可以利用远程的编译环境在本地进行打断点调试的。
文章目录
服务器端创建容器并进行端口映射
docker run -it \\
--name abacus2 \\
--workdir /root \\
--entrypoint /bin/bash \\
-p 8010:22 \\
-v /tmp:/tmp \\
-v /opt/tmp:/opt/tmp \\
-v /root:/root\\
-v /root/abacus:/root/abacus\\
hub.byted.org/reckon/data.aml.abacus_base:0dc79d9dbff213752f8863a40841580b
其中关键是端口映射,参数:-p 宿主机port:容器port。上面的命令中 -p 8010:22
,就是将容器的 22 号端口(ssh服务端口)映射到宿主机(服务器)的 8010 端口。在本文中,因为需要使用 ssh 服务端口,所以,容器端口必须写 22。
容器设置
- 设置密码
passwd
- 修改ssh配置文件以下选项:
vim /etc/ssh/sshd_config
,末尾增加#PermitRootLogin prohibit-password # 默认打开 禁止root用户使用密码登陆,需要将其注释 RSAAuthentication yes #启用 RSA 认证 PubkeyAuthentication yes #启用公钥私钥配对认证方式 PermitRootLogin yes #允许root用户使用ssh登录
- 启动 sshd 服务:
/etc/init.d/ssh restart
。 - exit 退出容器,使用
ssh root@127.0.0.1 -p 8010
进行连接测试。输入密码成功进入容器内部即配置成功。
vscode 远程连接容器调试
vscode 插件安装:
- 安装 remote-ssh 插件
- 安装 CodeLLDB 调试器插件
配置远程连接文件:
Host 10.248.134.122
HostName 10.248.134.122
User root
Port 8010
Host 可以根据自己的喜好起一个标志名称。HostName 必须填写需要远程连接的服务器 IP 地址。User 此处因为远程的是服务器上配置的docker容器,默认用户名是 root,此处需要改下为 root。
点击远程资源管理器面板,新建连接到远程服务器:
打开远程 /root/
文件夹。
启动调试->打开 launch.json,配置如下:
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
"type": "lldb",
"request": "launch",
"name": "exec",
"program": "$workspaceFolder/abacus/abacus-develop/bin/test/abacus",
"args": [],
"cwd": "$workspaceFolder/abacus/abacus-develop/bin/test/"
]
其中,program 是可执行程序的位置,$workspaceFolder 是你打开的远程目录,args 是传入参数,cwd 是程序执行的当前目录。
现在可以像 vs 一样打断点进行调试了。
以上是关于vscode 远程连接 docker 容器进行 C++ 代码调试实践的主要内容,如果未能解决你的问题,请参考以下文章
VSCode + docker + SSH实现远程连接服务器并进行开发