1.首先使用docker而不是nvidia-docker启动原始镜像下的容器:
sudo docker run --rm -it registry.cn-hangzhou.aliyuncs.com/modelscope-repo/modelscope:ubuntu22.04-cuda12.1.0-py310-torch2.1.2-tf2.14.0-1.13.1 bash
2.在该容器中删除相关nvidia库文件:
mv /usr/lib/x86_64-linux-gnu/libnvidia-ml.so.1 /usr/lib/x86_64-linux-gnu/libnvidia-ml.so.1.bak
mv /usr/lib/x86_64-linux-gnu/libcuda.so.1 /usr/lib/x86_64-linux-gnu/libcuda.so.1.bak
mv /usr/lib/x86_64-linux-gnu/libcudadebugger.so.1 /usr/lib/x86_64-linux-gnu/libcudadebugger.so.1.bak
3.不要关闭刚才创建的容器,重新打开一个终端,查询刚新建的容器id号,然后使用下面的命令创建新镜像:
sudo docker commit 73e64889762b new:v1
4.使用nvidia-docker来创建new:v1镜像对应的容器:
sudo nvidia-docker run -dit --net=host --name matting --shm-size="8g" -v $PWD:/matting new:v1 bash