You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Slurm启动Docker容器时配置端口映射实现VSCode远程调试?

Slurm+Docker环境下VSCode远程容器调试的端口映射方案

前提准备

首先确保你的Docker镜像内已经安装并启用SSH服务,否则端口映射后也无法连接:

# 容器内执行(以Debian/Ubuntu为例)
apt update && apt install -y openssh-server
# 启动SSH服务
service ssh start
# 设置容器内用户的登录密码(以root为例)
passwd root

修改Slurm作业命令添加端口映射

Slurm支持通过--container-ports参数实现宿主机与容器的端口映射,修改你的srun命令如下:

srun \
  --ntasks=1 \
  --gpus=1 \
  --cpus-per-task=4 \
  --time=6-00:00:00 \
  --container-image=<docker_image> \
  --container-ports=宿主机端口:22 \ # 替换成你想用的宿主机端口,比如2222:22
  --pty bash

注:部分旧版本Slurm可能使用--port参数替代--container-ports,如果上述参数无效可以尝试替换。

获取计算节点地址

Slurm作业会调度到集群的计算节点上(而非登录节点),需要获取当前作业所在计算节点的IP或主机名:

# 容器内执行,获取节点IP
hostname -i
# 或者直接读取Slurm环境变量拿到节点名
echo $SLURMD_NODENAME

记下这个地址,后续配置SSH会用到。

本地SSH配置修改

在本地机器的~/.ssh/config文件中添加如下配置:

Host hpc-docker-container
    HostName [计算节点IP/主机名] # 替换成刚才获取的地址
    Port [你设置的宿主机端口]     # 比如之前的2222
    User [容器内用户名]           # 比如root

VSCode连接容器

  1. 打开VSCode,安装Remote-SSH插件
  2. 左侧打开「远程资源管理器」,找到刚配置的hpc-docker-container
  3. 点击连接,输入容器内用户的密码,即可进入容器环境进行代码调试

特殊场景处理(计算节点无公网访问)

如果集群计算节点不直接对外网开放,需要通过登录节点做端口转发:

# 本地终端执行,将本地端口转发到计算节点的映射端口
ssh -L 本地端口:计算节点IP:宿主机映射端口 登录节点用户名@登录节点IP

此时本地SSH配置需修改为:

Host hpc-docker-container
    HostName localhost
    Port [本地端口]
    User [容器内用户名]

内容的提问来源于stack exchange,提问作者clems

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 22:21:37