vscode本地docker gdb调试python_vscode 给docker程序调试
背景
最近在部署测试一个工程,不想配环境,拉官方镜像下来跑的,不幸地是,程序运行有点问题。想要debug一下,又不想在终端gdb,想要在vscode中点点点,所以有了下面的一顿配置。
vscode python常用插件
利用docker & Remote Development插件
参考链接中“用vscode来查看并attach运行中的容器——方法二:使用docker插件“部分
注意:不安装Remote Development插件,没有attach visual studio code选项(参考链接)
利用Dev Containers插件
参考链接中“用vscode来查看并attach运行中的容器——方法一:使用remote-container插件“部分,我没有在插件中搜索到remote-container,安装的Dev Containers插件,发现也是ok的。
利用Remote SSH插件
参考链接:在Docker容器中启用SSH服务,实现外部访问的详细教程
配置docker: ssh & gdb
ssh:apt-get update apt-get install -y openssh-servervim /etc/ssh/sshd_configPort 8080(默认情况下,ssh服务监听22号端口,此处也可以配置其他的)PermitRootLogin yesPasswordAuthentication yesuseradd -m -d /home/<username> -s /bin/bash -p 密码service ssh restart 查看状态 service ssh status如果没有成功运行:端口问题:apt install net-tools查看22端口被谁监听:netstat -tulnp | grep 22查看ssh服务监听哪个端口:netstat -tulnp | grep ssh 直接运行:/usr/sbin/sshd 查看输出报错docker run -p <host_port>:<container_port> -d <your_image> ...... bashssh -p <host_port> <username>@<host_ip_or_localhost>例如:ssh -p 8080 star@localhostwhoamipasswdgdb:sudo apt install gdb# 测试gdb --versiondocker commit 容器name 镜像名
利用remote-ssh远程调试
该步比较简单,可参考remote-ssh配置与使用
需要说明的一点是可以在~/.ssh/config中配置端口号Port
其他问题
VSCode如何在行内显示变量值
python debug的时候报环境版本太低,不能debug的错误:
(1)参考VSCode运行Python3.6.5项目 无法debug调试的解决办法
(2)我修改python成非pre-release版本之后,还是会报错,但是可以正常debug了,有点难以解释。
ai助手:lingma Copilot等
20250429新增
利用vscode debug远程服务器上docker环境中运行的python文件
先利用remote-ssh远程到服务器上,然后利用docker插件操作即可。
利用vscode debug远程服务器上虚拟环境中运行的python文件
先利用remote-ssh远程到服务器上,然后设置虚拟环境,之后安装必要插件即可。
服务器无法联网,vscode ssh不成功怎么办?
参考链接
我是把解压的vscode-server-linux-x64.tar.gz包放在了~/.vscode-server 下面,而不是bin下面,有效。