本地windows vscode远程连接服务器docker容器

本文介绍本地Windows系统下,使用VSCode远程连接服务器Docker容器的方法。包括查看已有镜像、构建新镜像、启动容器、容器内配置(修改密码、安装ssh等)、本地命令远程连接,以及VSCode安装插件、配置文件和开启远程连接等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本地windows vscode远程连接服务器docker容器

一、查看服务器中已有docker镜像:

(base) [root@os-compute-and-train-01]$ docker images
REPOSITORY        TAG                         IMAGE ID       CREATED         SIZE
solo       			latest                      aa0c0c99a87d   4 days ago      7.88GB
nvidia/cuda       9.0-base                    0bedd0dfd4cb   16 months ago   152MB
pytorch/pytorch   1.3-cuda10.1-cudnn7-devel   fe0f6ec79dbf   3 years ago     7.72GB

二、构建新的docker镜像:

(base) [root@os-compute-and-train-01]$ docker build . -t pytorch/pytorch:1.3-cuda10.1-cudnn7-devel-solo
Sending build context to Docker daemon  3.072kB
Step 1/12 : ARG PYTORCH="1.3"
Step 2/12 : ARG CUDA="10.1"
Step 3/12 : ARG CUDNN="7"
Step 4/12 : FROM pytorch/pytorch:${PYTORCH}-cuda${CUDA}-cudnn${CUDNN}-devel
 ---> fe0f6ec79dbf
Step 5/12 : ENV TORCH_CUDA_ARCH_LIST="6.0 6.1 7.0+PTX"
 ---> Using cache
 ---> 1b23d1bcc112

三、启动容器:

(base) [root@os-compute-and-train-01]$ docker run --name solo_container -it --shm-size 8G -v /home/hongxinxin/Project/实例分割/SOLO-master/:/SOLO/  -p 10086:22 --gpus all pytorch/pytorch:1.3-cuda10.1-cudnn7-devel-solo bash

四、docker容器内配置

1、进入容器中,使用如下命令修改root用户密码
root@d85e9b209bf3:~# passwd
2、安装ssh
root@d85e9b209bf3:~# apt install ssh
3、修改ssh配置文件
root@d85e9b209bf3:~# vim /etc/ssh/sshd_config  
# 将PermitRootLogin 设置为yes  #允许root用户使用ssh登录
4、启动sshd服务
root@d85e9b209bf3:~# /etc/init.d/ssh restart 

五、本地命令远程连接服务器docker容器

co@Uniml-Dev-Ai01 MINGW64 /
$ ssh root@192.168.60.101 -p 10086
The authenticity of host '[192.168.60.101]:10086 ([192.168.60.101]:10086)' can't be established.
ED25519 key fingerprint is SHA256:EAYiOQEC0tMRxBaKX5kvrguIUB3TMZVqbLpwmRNPOa0.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[192.168.60.101]:10086' (ED25519) to the list of known hosts.
root@192.168.60.101's password:
Welcome to Ubuntu 16.04.6 LTS (GNU/Linux 5.4.210-1.el7.elrepo.x86_64 x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

root@d85e9b209bf3:~#

如果连接时出现以下错误:

co@Uniml-Dev-Ai01 MINGW64 /
$ ssh root@192.168.60.101 -p 10086
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ED25519 key sent by the remote host is
SHA256:EAYiOQEC0tMRxBaKX5kvrguIUB3TMZVqbLpwmRNPOa0.
Please contact your system administrator.
Add correct host key in /c/Users/co/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /c/Users/co/.ssh/known_hosts:15
Host key for [192.168.60.101]:10086 has changed and you have requested strict checking.
Host key verification failed.

去除C:\Users\co.ssh\config文件中关于服务器映射端口(这边端口时10086)
以上操作可以通过命令远程连接到docker容器。

六、vscode相关配置

1、vscode中安装remote ssh和dev containers插件

在这里插入图片描述

2、配置vscode的config文件

在这里插入图片描述填写config文件内容,按照以下格式:
在这里插入图片描述
特别注意:由于需要远程连接的是服务器上的docker容器,而且前面提到:ssh服务器的22号端口已经映射为10086,因此,务必增加一个Port,填写自己映射的端口。如果只是远程服务器,不需要用docker容器,则不需要增加Port这一行。配置完成后,保存配置。

3、开启远程连接

在这里插入图片描述此处输入之前容器设置的root密码进行连接:
在这里插入图片描述连接完成
在这里插入图片描述选择打开文件夹,就可进行项目开发:
在这里插入图片描述左上角框显示容器中所处项目目录,右下角框是容器的运行环境。

### VSCode 远程连接服务器 Docker 容器失败解决方案 当遇到VSCode远程连接服务器中的Docker容器出现问题时,通常是因为SSH连接配置不正确或是Docker守护进程未正常运行等原因造成的。对于`ssh: connect to host 0.0.0.0 port 6789: Connection refused`这类错误消息表明客户端尝试通过指定IP地址和端口号建立SSH连接被拒绝。 为了确保能够成功地利用VSCode进行远程调试,需确认几个方面: #### 确认Docker服务状态 确保目标主机上的Docker服务已经启动并正在监听必要的TCP/IP端口。可以通过执行命令来开启Docker守护程序[^1]: ```bash sudo service docker start ``` #### SSH隧道设置 如果存在防火墙阻止直接访问,则可以考虑创建一个SSH隧道以便安全地转发流量至内部网络资源。这里推荐使用`autossh`工具保持持久性的SSH会话,并且自动重连断开的链接[^3]。外网服务器应作为跳板机角色,在其上安装并配置好`autossh`后,可通过如下方式构建反向代理通道: ```bash autossh -M 0 -f -N -R *:本地端口:localhost:远端DockerAPI端口 用户名@外网服务器地址 ``` #### 修改Docker Daemon配置文件 为了让外部能顺利接入Docker API接口,可能还需要调整位于/etc/docker/daemon.json路径下的JSON格式配置文档,加入类似下面的内容以允许特定范围内的IP地址访问Docker引擎: ```json { "hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"] } ``` 注意:开放此端口可能会带来安全隐患,请谨慎操作! #### 使用合适的Docker镜像 针对那些希望长期维持在线等待进一步指令的情况,建议采用不会立即终止进程的基础镜像。例如,在自定义的Dockerfile里指定`ENTRYPOINT ["/bin/sleep", "infinity"]`可使容器持续处于活动状态而不自行关闭[^4]. #### 测试连接性 最后一步是在完成上述所有准备工作之后测试整个流程是否通畅无阻。可以从本机或者其他任意位置发起请求验证能否无障碍抵达目的节点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值