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

Docker容器结合SLURM作业的root权限配置问题求助

解决SLURM作业访问Docker容器时的sudo权限问题

当前Docker容器中创建了普通用户并配置了sudo权限,但SLURM作业执行sudo命令时会卡在输入密码的步骤。以下是两种针对性解决方案:


方案一:Dockerfile直接以root用户运行

该方案无需处理sudo权限,直接用root操作,适合频繁需要root权限的场景。

修改Dockerfile

移除创建普通用户、设置密码、加入sudo组及切换用户的相关指令,保留基础环境配置即可:

FROM nvidia/cuda:12.2.0-devel-ubuntu22.04

# 设置非交互式apt安装环境变量
ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update && apt-get install -y wget bzip2 && apt-get clean && rm -rf /var/lib/apt/lists/*

RUN wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O /tmp/miniconda.sh && bash /tmp/miniconda.sh -b -p /opt/miniconda && rm /tmp/miniconda.sh

ENV PATH=/opt/miniconda/bin:$PATH

# 更新包列表并安装依赖
RUN apt-get update && apt-get install -y \
python3 \
python3-pip \
build-essential \
gcc \
g++ \
openmpi-bin \
openmpi-common \
libopenmpi-dev

# 安装NumPy和SciPy
RUN pip3 install numpy scipy

# 直接以root用户运行,设置工作目录
WORKDIR /raid/cedsan/new_docker/

修改SLURM脚本

移除--user $(id -u $USER):$(id -g $USER)参数,默认以root进入容器执行命令(无需sudo):

docker run -t --gpus '"device='$CUDA_VISIBLE_DEVICES'"' --name $SLURM_JOB_ID --ipc=host --shm-size=20GB -v /raid/cedsan/new_docker pymatgen_cuda bash -c "apt-get update" | tee -a log_out.txt

方案二:配置普通用户免密sudo或自动输入密码

若必须保留普通用户,可通过以下两种方式跳过sudo密码验证:

子方案2.1:Dockerfile中配置免密sudo

在Dockerfile的usermod -aG sudo $dockerusername之后添加以下指令,让cedsan用户无需密码执行所有sudo命令:

# 配置免密sudo规则
RUN echo "$dockerusername ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/$dockerusername
# 设置sudoers文件权限(必须为0440)
RUN chmod 0440 /etc/sudoers.d/$dockerusername

修改后SLURM脚本中的sudo命令会自动执行,无需输入密码。

子方案2.2:SLURM脚本中自动传递密码

通过管道将预设密码传递给sudo,确保密码与Dockerfile中dockeruserpassword一致:

docker run -t --gpus '"device='$CUDA_VISIBLE_DEVICES'"' --name $SLURM_JOB_ID --ipc=host --shm-size=20GB --user $(id -u $USER):$(id -g $USER) -v /raid/cedsan/new_docker pymatgen_cuda bash -c "echo 'password' | sudo -S apt-get update" | tee -a log_out.txt

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 21:57:34