【mamba环境】Docker安装指南(容器NVIDIA Driver & gpus all报错解决)

Docker安装mamba环境配置记录

参考博主帖子Mamba安装causal-conv1d安装无误,但是在最后一步mamba安装报错Building wheel for error error尝试各种方法无解,故采用docker安装

安装windows dockerdesktop后,shell里依次运行

docker --version
/*检查是否安装成功*/
docker pull kom4cr0/cuda11.7-pytorch1.13-mamba1.1.1:1.1.1
/*拉取镜像*/
docker run -it --entrypoint /bin/bash kom4cr0/cuda11.7-pytorch1.13-mamba1.1.1:1.1.1
/*run容器(无gpu版本试水)*/

docker创建容器速度慢

原因:DNS连接不上,导致容器无法run

解决方案:将Docker Engine修改后apply&restart

{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "dns": [
    "8.8.8.8",
    "8.8.4.4"
  ],
  "experimental": false,
  "registry-mirrors": [
    "https://npavxk2j.mirror.aliyuncs.com"
  ]
}

docker容器中不能识别GPU驱动

WARNING: The NVIDIA Driver was not detected. GPU functionality will not be available. Use the NVIDIA Container Toolkit to start this container with GPU support; see https://docs.nvidia.com/datacenter/cloud-native/

原因:由于 Docker 容器无法检测到 NVIDIA 驱动程序。为了在 Docker 中启用 GPU 功能,需要确保正确安装和配置 NVIDIA 驱动程序以及 NVIDIA Container Toolkit。

解决方案:

  1. 检查是否已正确安装 NVIDIA 驱动程序。如果输出显示 NVIDIA GPU 的信息,则说明驱动程序已正确安装。如果未安装或无法识别,需要参考官网安装驱动。
wsl -d Ubuntu-22.04
nvidia-smi
  1. 依次执行配置指令,安装 NVIDIA Container Toolkit。
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
  1. 配置 Docker 以支持 NVIDIA Container Toolkit
sudo nvidia-ctk runtime configure
  1. 如果报错unable to flush config: unable to open 则手动创建该文件并配置 Docker,使用 sudo 创建并写入文件
sudo mkdir -p /etc/docker
  1. 创建并写入 daemon.json 文件
sudo tee /etc/docker/daemon.json <<EOF

{
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
}
}
EOF
  1. 然后重启 Docker 服务
sudo systemctl restart docker
  1. 验证 NVIDIA Container Toolkit 配置,如果没pull的话可以先在官网[docker镜像库cuda]查找合适版本,我这里是
docker pull nvidia/cuda:11.7.1-base-ubuntu20.04
  1. 拉取镜像完成后,测试 NVIDIA GPU 配置:
docker run --gpus all nvidia/cuda:11.7.1-base-ubuntu20.04 nvidia-smi
  1. 打印成功再运行容器
docker run --gpus all -it --name test3 --rm kom4cr0/cuda11.7-pytorch1.13-mamba1.1.1:1.1.1

接着会报错如下:


docker创建容器时使用–gpus all报错解决

docker: Error response from daemon: failed to create task for container: nvidia-container-cli: mount error: file creation failed: /var/lib/docker/overlay2/9066e7c8619926b91d714fb77242abd95d695e7cbe8768077fca02899b9d40b9/merged/usr/lib/x86_64-linux-gnu/libnvidia-ml.so.1: file exists: unknown.

原因:本地有这个文件,同时镜像里面也有此文件,所以需要把镜像里面的这个文件删掉。

解决方案:直接删除是不行的,需要创建一个新镜像拷贝原镜像

  1. 创建 Dockerfile文件内输入:
FROM kom4cr0/cuda11.7-pytorch1.13-mamba1.1.1:1.1.1
RUN rm -rf /usr/lib/x86_64-linux-gnu/libnvidia-ml.so.1 /usr/lib/x86_64-linux-gnu/libcuda.so.1
  1. 构建 Docker 镜像:
docker build -t my_custom_image .
  1. 运行 Docker 容器:
docker run --gpus all -it --name test --rm my_custom_image

镜像中python需重定向

ln -s /usr/bin/python3.8 /usr/bin/python
//验证
python
from mamba_ssm import Mamba

总结:

踩坑无数总结出的经验,希望对后来者有帮助

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值