配置VS Code + Ubuntu服务器 + Docker + Python:远程调试Debug
0.背景和原理
背景:
- 有服务器且在服务器中安装了Docker
- 使用VS Code进行远程Debug
原理:
使用SSH来实现
1.Docker容器配置
以新建tensorflow的Docker容器为例
- 拉取tensorflow的镜像
使用指令
sudo docker pull tensorflow/tensorflow:latest-gpu
即可拉取tensorflow-gpu的镜像
使用指令
sudo docker image ls
即可查看当前Docker中保存的全部镜像
- 新建容器
新建容器的指令如下
sudo docker run --gpus all -it --name new-tf2 -p 1234:22 -v /home/yons/new:/home/new -v /media/yons/ubuntu:/home/media tensorflow/tensorflow:latest-gpu /bin/bash
指令中:
--gpus all
表示该容器使用服务器的所有gpu,或使用--gpus 'device=0'
来指定某一个GPU-it
表示该容器使用终端进行交互式操作--name new-tf2
表示对该容器命名为“new-tf2”-p 1234:22
表示将容器的22端口映射到宿主机的13044端口-v /home/yons/new:/home/new
表示将本地目录“/home/yons/new”映射到容器的“/home/new”中-v /media/yons/ubuntu:/home/media
中/media/yons/ubuntu
是本机中机械硬盘(第二块硬盘)的地址,该指令表示将第二块硬盘的地址映射到/home/media中tensorflow/tensorflow:latest-gpu
表示使用该镜像,/bin/bash
表示使用系统的终端软件
注意!容器的本地地址映射和命名是十分重要的!
新建其他的容器也基本是这个流程,找到正确的pull对应镜像方法最重要,得到镜像之后按照第二步的方法执行即可
建立容器后会直接进入容器,我们在/home目录下就可以看到映射的两个文件夹
- 进入容器,修改容器的root用户密码
passwd
- 更新apt,并安装openssh-server
apt-get update
这里的报错是针对nvidia的库,对安装openssh-server没有影响
apt-get install openssh-server
- 修改ssh的配置文件,使其允许root用户登录
Vi /etc/ssh/sshd_config
若提示没有vi指令,则安装vim
apt-get install vim
vim的使用方式建议百度,或者使用nano等都行
- 将
PermitRootLogin
项后面的参数修改为yes
- 启动SSH服务并测试连接
service ssh start
2.VS Code配置
- 安装插件
Remote SSH
和Python
- 点击左下角的箭头,在对话框中选择
Open SSH Configuration File
,选择第一个config文件进行修改
- 修改文件,添加上容器的SSH设置
Host 123
HostName 192.168.1.3
Port 1234
User root
Host表示建立的连接的名称,自定义即可
HostName表示服务器的ip
port表示连接的端口,这里填上新建容器时映射的服务器的端口号
User表示登录的用户
- 点击左侧的
Remote Explore
,可以看到已经有了远程服务器123
右键服务器123,任意选择一个即可
Connect to Host in Current Window
表示在当前窗口打开
Connect to Host in New Window
表示在新窗口中打开连接
在弹出窗口中选择Linux
,在下方的TERMINAL中输入yes
,并输入之前设置的root用户的密码
在输入完密码之后,VS Code会在容器中安装一些必要的组件,稍等片刻即可
- 进入
Explore
,选择Open Folder
,在弹出对话框内找到你的项目路径并选择OK
如:/home/admin/project1/
在TERMINAL中会提示再输入一次密码
- 进入VS Code的扩展,可以看到提示:将Python安装到SSH:123
- 使用
Shift + Ctrl + P
,在对话框中找到Python: Select interpreter
并选择,在展开的选项中找到你需要用的Python路径
- 点击左侧的
Run and Debug
,选择create a luanch.json
在弹出窗口中选择Python File
,就会进入launch.json文件
- 在代码中设置断点,即可开始快乐Debug