本文介绍了使用Docker来配置Pytorch开发环境的步骤
为什么使用docker
如果以Windows系统为主力机时,很容易遇到如下问题
系统级工具软件安装繁琐
Windows下安装各类python第三方包所需的系统软件非常麻烦,举例而言,opencv(机器视觉工具)、sox(音频处理工具)、ffmpeg(音视频处理工具),这些在Linux系统下可以直接使用包管理工具
Linux与Win的第三方Python库实现不一致
很多工具虽然有Win版本,但有时实现不一致,这导致了实际使用时Win下更容易出问题。
如 DESED Issue #60 中提到的问题,在Linux中就不会出现。
配置步骤
从市场选择合适的Docker镜像
无需顾虑物理机cuda版本,因为只会用到物理机的NVIDIA Driver,保证NVIDIA Driver CUDA API版本大于等于镜像cuda版本即可。
查看物理机驱动指令nvidia-smi
启用Docker
powershell下执行指令:
docker run -it --gpus all `
--name sed ` # 给容器命名,方便管理
-p 2222:22 ` # 映射SSH端口,左侧是物理端口,右侧是Docker容器里的端口
-p 9090:9090 # 映射clash管理端口
-v E:\dockerfile:/workspace ` # 挂载Windows目录到容器中的/workspace目录
--ipc=host ` # 共享内存,用于PyTorch多进程
--shm-size=16g ` # 设置共享内存大小,避免OOM问题
pytorch/pytorch:2.4.1-cuda12.1-cudnn9-runtime /bin/bash # 设置拉取的Pytorch官方镜像版本
OpenSSH的配置
安装OpenSSH
apt update && apt install -y openssh-server
配置 SSH 服务
# 修改配置文件,允许 root 登录
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
# 如果用root登录,执行以下命令给root设置密码
passwd root
# 启动SSH服务
service ssh start
# 如果你希望用非root用户登录,可创建一个新用户
useradd -m vscodeuser && echo "vscodeuser:yourpassword" | chpasswd
Visual Studio Code登录
安装remote ssh插件,然后输入ssh root@localhost -p 2222
如需要,可以清理物理机指定端口ssh缓存
ssh-keygen -R [localhost]:2222
在vscode终端中恢复conda环境
source /opt/conda/bin/activate
重启容器后的恢复步骤
Docker的exec中
恢复ssh服务
service ssh start
Visual Studio Code的终端中
恢复conda环境
source /opt/conda/bin/activate