Docker 是一个开源软件,也是一个开放平台,用于开发应用、交付(shipping)应用、运行应用。 Docker允许用户将基础设施(Infrastructure)中的应用单独分割出来,形成更小的颗粒(容器),从而提高交付软件的速度。
而Visual Studio Code(简称VSCode)是一款由微软开发且跨平台的免费源代码编辑器。默认支持非常多的编程语言,作为一款简洁而又强大的编辑器,通过安装插件后可以武装成IDE。
本文内容简要介绍如何使用VSCode调试远程docker容器内的代码。
sudo service docker start
在docker启动参数配置增加端口映射(如 -p 6666:22
):
sudo docker run -it -p 6666:22 image_name
启动容器后,安装openssh:
apt-get update
apt-get install openssh-server
如果希望直接使用root账户登录容器,则设置root密码
passwd
提示:也可以重新添加账号并设置密码
vim /etc/ssh/sshd_config
注释掉 PermitRootLogin prohibit-password 这一行
添加这一行 PermitRootLogin yes
service ssh restart
ssh root@***.***.***.*** -p 6666
其中***.***.***.***为远程机器的IP。
输入上面设置的密码即可登入。
一般Windows会自带openssh,如未安装需要先安装。
在安装好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 [email protected] -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至[email protected]。
[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