Ubuntu24.02使用Docker搭建CUDA12.2环境过程
服务整体架构
1、服务器宿主机显卡驱动、CUDA环境安装
略
2、宿主机Docker服务安装,及镜像配置
略
3、镜像下载(拉取)
docker pull nvidia/cuda:12.2.0-devel-ubuntu22.04
如果网络封锁比较严重,可添加国内镜像(百度查找)。
下载完成后,使用命令查看是否下载完成。
docker images
4、容器创建
docker run -it --name contrin-test --gpus all -p 20000:22 -v /home/data/docker-container-data/contain-test:/work dockerproxy.cn/nvidia/cuda:12.2.0-devel-ubuntu22.04
命令详解:
-it 以交互模型运行容器,也就是运行容器后不退出
--name contain-test 将容器命名为test,否则会随机命名
--gpus all 允许使用所有的gpu,这个非常重要,没有这个参数gpu无法正常使用
-p 20000:22 将宿主机的1234端口映射到容器的22端口,为了ssh链接做准备(可添加多个)
-v /home/data/docker-container-data/contain-test:/work 将容器的/work文件夹映射到宿主机的/home/data/docker-container-data/contain-test
dockerproxy.cn/nvidia/cuda:12.2.0-devel-ubuntu22.04 镜像名:版本号
创建完成后,如自动进入容器,则输入exit命令退出。
使用命令查看是否创建成功。
docker ps -a
如容器未启动(STATUS),使用命令启动容器
docker start 5155cc6f1675
5、容器安装ssh
使用命令进入容器
docker exec -it 5155cc6f1675 /bin/bash
升级安装工具,并安装vim
apt-get update
apt-get install vim
安装并启动ssh
apt-get install openssh-server
设置ssh连接密码
passwd
添加root连接权限
vim /etc/ssh/sshd_config
注释这一行PermitRootLogin prohibit-password
添加一行PermitRootLogin yes
然后保存退出,重启服务
/etc/init.d/ssh restart
在 /root 目录下新建一个 start_ssh.sh文件,并给予该文件可执行权限
vim /root/start_ssh.sh
脚本内容为:
#!/bin/bash
LOGTIME=$(date "+%Y-%m-%d %H:%M:%S")
echo "[$LOGTIME] startup run..." >>/root/start_ssh.log
service ssh start >>/root/start_ssh.log
提升脚本权限
chmod +x /root/start_ssh.sh
将start_ssh.sh脚本添加到启动文件中
vim /root/.bashrc
在 .bashrc 文件末尾加入如下内容
# startup run
if [ -f /root/start_ssh.sh ]; then
./root/start_ssh.sh
fi
6、测试CUDA
nvidia-smi
nvcc -V
如nvcc -V命令提示不存在,则查看cuda的bin目录下是否有nvcc:
cd /usr/local/cuda/bin
如果存在,直接将cuda路径加入系统路径即可:
vim ~/.bashrc
export LD_LIBRARY_PATH=/usr/local/cuda/lib
export PATH=$PATH:/usr/local/cuda/bin
刷新配置文件,并再次测试
source ~/.bashrc
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术