centos7基础镜像添加nvidia依赖

是这样的,我在用centos:7创建基础镜像并配置好环境以后,发现在容器中 没有nvidia-smi命令

这样:创建一个Dockerfile文件,添加如下,基础镜像根据自己的改一下

FROM segment_anything_env:202307171558
 
LABEL maintainer "chentiao_create"
 
 
RUN echo "/usr/local/nvidia/lib" >> /etc/ld.so.conf.d/nvidia.conf && \
    echo "/usr/local/nvidia/lib64" >> /etc/ld.so.conf.d/nvidia.conf

 
ENV PATH /usr/local/nvidia/bin:/usr/local/cuda/bin:${PATH}
 
ENV LD_LIBRARY_PATH /usr/local/nvidia/lib:/usr/local/nvidia/lib64

 
# nvidia-container-runtime
 
ENV NVIDIA_VISIBLE_DEVICES all
 
ENV NVIDIA_DRIVER_CAPABILITIES compute,utility
 
ENV NVIDIA_REQUIRE_CUDA "cuda>=10.0"

然后再执行

docker build -t segment_anything_env:202307171633 .

就创建了segment_anything_env:202307171633镜像了,然后根据这个镜像创建容器就可以看到显卡了。

以下是Dockerfile文件的逐行解释

这是一个Dockerfile文件,用于构建一个容器环境。每一行指令都有特定的作用,下面是对每一行指令的解释:

1. `LABEL maintainer "chentiao_create"`:设置一个标签,用于指定该Docker镜像的维护者。

2. `RUN echo "/usr/local/nvidia/lib" >> /etc/ld.so.conf.d/nvidia.conf && \`:运行一个命令,在`/etc/ld.so.conf.d/nvidia.conf`文件中追加`/usr/local/nvidia/lib`路径。

3. `echo "/usr/local/nvidia/lib64" >> /etc/ld.so.conf.d/nvidia.conf`:在`/etc/ld.so.conf.d/nvidia.conf`文件中追加`/usr/local/nvidia/lib64`路径。

4. `ENV PATH /usr/local/nvidia/bin:/usr/local/cuda/bin:${PATH}`:设置环境变量`PATH`,将`/usr/local/nvidia/bin`和`/usr/local/cuda/bin`添加到路径中。

5. `ENV LD_LIBRARY_PATH /usr/local/nvidia/lib:/usr/local/nvidia/lib64`:设置环境变量`LD_LIBRARY_PATH`,将`/usr/local/nvidia/lib`和`/usr/local/nvidia/lib64`添加到动态链接库搜索路径中。

6. `ENV NVIDIA_VISIBLE_DEVICES all`:设置环境变量`NVIDIA_VISIBLE_DEVICES`为`all`,表示使用所有可见的NVIDIA设备。

7. `ENV NVIDIA_DRIVER_CAPABILITIES compute,utility`:设置环境变量`NVIDIA_DRIVER_CAPABILITIES`,指定NVIDIA驱动的功能,包括`compute`和`utility`。

8. `ENV NVIDIA_REQUIRE_CUDA "cuda>=10.0"`:设置环境变量`NVIDIA_REQUIRE_CUDA`,指定所需的CUDA版本为10.0及以上。

以上指令主要是为了配置容器环境,包括设置动态链接库路径、环境变量以及NVIDIA GPU的可见设备和所需的CUDA版本。

 

posted @ 2023-07-17 17:13  海_纳百川  阅读(125)  评论(0编辑  收藏  举报
本站总访问量