VSCode连接远程的docker容器进行代码调试

前言

Docker 是一个开源软件,也是一个开放平台,用于开发应用、交付(shipping)应用、运行应用。 Docker允许用户将基础设施(Infrastructure)中的应用单独分割出来,形成更小的颗粒(容器),从而提高交付软件的速度。

在这里插入图片描述

而Visual Studio Code(简称VSCode)是一款由微软开发且跨平台的免费源代码编辑器。默认支持非常多的编程语言,作为一款简洁而又强大的编辑器,通过安装插件后可以武装成IDE。

本文内容简要介绍如何使用VSCode调试远程docker容器内的代码。

实现

远程机器上的docker容器配置

开启docker daemon

sudo service docker start

配置端口映射

在docker启动参数配置增加端口映射(如 -p 6666:22):

sudo docker run -it -p 6666:22 image_name

安装并开启ssh服务

启动容器后,安装openssh:

apt-get update
apt-get install openssh-server

设置远程登录的密码

如果希望直接使用root账户登录容器,则设置root密码

passwd 

提示:也可以重新添加账号并设置密码

增加root账户登录许可

vim /etc/ssh/sshd_config
注释掉 PermitRootLogin prohibit-password 这一行 
添加这一行 PermitRootLogin yes 

重启ssh服务

service ssh restart

尝试直接使用ssh登录

ssh root@***.***.***.*** -p 6666

其中***.***.***.***为远程机器的IP。
输入上面设置的密码即可登入。

本地电脑上的VSCode配置

一般Windows会自带openssh,如未安装需要先安装。

VSCode下载Remote-SSH插件

在这里插入图片描述

VSCode连接远程容器

在安装好Remote-SSH插件后点击左侧栏的SSH连接图标:
在这里插入图片描述
点击新建一个SSH连接:
在这里插入图片描述
输入ssh root@***.***.***.*** -p 6666
在这里插入图片描述

输入密码确认:
在这里插入图片描述
正常连接容器后,即可打开代码开始调试(调试相关环境需要自行安装)。

注:打开容器中某文件夹时可能需要密码二次确认。

其他问题

端口未开放导致无法登录

在本机配置:

ssh -L 127.0.0.1:6666:127.0.0.1:6666 -N -f root@***.***.***.***

其中***.***.***.***为远程机器的IP。

然后登录:

ssh root@127.0.0.1 -p 6666

其他端口问题解决方案可查阅文末参考资料[3]。

二次连接报错

(1)如果二次连接登录时报ssh连接信息与已存在信息不相符的错误,则删除known_hosts中IP 127.0.0.1 对应的那一行的内容:

notepad.exe C:\\Users\\xxx\\.ssh\\known_hosts

(2)如果二次连接登录时报端口问题,则重新在本机配置:

ssh -L 127.0.0.1:6666:127.0.0.1:6666 -N -f root@***.***.***.***

版权说明

本文为原创文章,独家发布在blog.csdn.net/TracelessLe。未经个人允许不得转载。如需帮助请email至tracelessle@163.com
在这里插入图片描述

参考资料

[1] Docker - 维基百科,自由的百科全书
[2] Windows VSCode配置conda shell执行Python脚本_TracelessLe的专栏-CSDN博客
[3] VSCode连接远程服务器里的docker容器 - 知乎
[4] Developing inside a Container using Visual Studio Code Remote Development
[5] Solving Docker permission denied while trying to connect to the Docker daemon socket | by Dhananjay Kr. | Medium
[6] Docker保存修改后的镜像 - 知乎
[7] Docker 删除&清理镜像 - 犬小哈 - 博客园
[8] Docker容器的创建、启动、和停止 - Ruthless - 博客园
[9] Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? - 华为云
[10] linux - Docker can’t connect to docker daemon - Stack Overflow
[11] Docker import/export vs. load/save | PSPDFKit

  • 6
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论
回答: 要在VSCode进行远程调试docker容器,可以按照以下步骤进行操作。首先,确保你已经安装了VSCodeDocker,并且已经在远程服务器上启动了docker daemon。然后,使用VSCode的remote-ssh插件连接到远程服务器。在远程服务器的命令行中启动docker,并在docker容器中配置ssh连接。你可以修改ssh的config文件,允许root用户远程登录,并设置root用户的密码。接下来,在VSCode中使用remote-ssh插件连接docker容器进行远程调试。你可以在VSCode的配置文件中添加相关的主机配置,包括主机名、用户名、端口等信息。然后,你就可以在VSCode进行远程调试docker容器内的代码了。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* [VSCode连接远程的docker容器进行代码调试](https://blog.csdn.net/TracelessLe/article/details/119060513)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [vscode连接docker远程调试](https://blog.csdn.net/DCGJ666/article/details/108536065)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TracelessLe

❀点个赞加个关注再走吧❀

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值