基于NVIDIA的dockerfile实操

dockerfile 说白了就是 生成镜像的文档。可以通过执行dockerfile很快速的生成镜像

文章目录

  • 一、前言
  • 二、执行dockerfile
    • 2.1 dockerfile书写示例
    • 2.2 dockerfile执行命令
  • 三、通过镜像启动docker
    • 3.1 创建docker
    • 3.2 启动docker
  • 附录:小知识&问题记录
    • 1. 如何查看ubuntu上cuda和cudnn的版本
    • 2. 如果docker拉取镜像太慢,则更改源
    • 3. 关于镜像的操作


一、前言

主要是以下几个步骤:

  1. 安装NVIDIA Container Toolkit。这个工具是nvidia官方提供,可以给docker提供一些接口,总之要在docker中使用GPU需要先装好这个工具;
  2. 执行dockerfile拉镜像以及封装
  3. 通过镜像启动docker

二、执行dockerfile

2.1 dockerfile书写示例

# 基础镜像
FROM nvidia/cuda:10.0-cudnn7-runtime-ubuntu18.04

# 安装所需的依赖和工具
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        python3-pip \
        python3-dev \
        git \
        wget \
        ca-certificates \
    && rm -rf /var/lib/apt/lists/*

# 设置工作目录
WORKDIR /app

# 安装Python依赖包
COPY requirements.txt .
RUN pip3 --no-cache-dir install -r requirements.txt

# 复制应用代码
COPY . .

# 设置环境变量
ENV LC_ALL=C.UTF-8
ENV LANG=C.UTF-8

# 启动应用
CMD ["python3", "app.py"]

注意:

  1. 镜像名可以从这里获取:https://hub.docker.com/layers/nvidia/cuda/11.4.1-cudnn8-runtime-ubuntu18.04/images/sha256-258bc949d52cd6c4db94084e5180d1f0589ebfbea651c74486eaa06c2dcbf765?context=explore
  2. 拉取镜像速度过慢,可以参考此链接修改镜像源:也可以看附录2。https://blog.csdn.net/wuqingshan2010/article/details/111662824
  3. 路径显示不存在:Dockerfile一般都是放在根目录下,COPY的文件使用相对路径
  4. 解决The following signatures couldn’t be verified because the public key is not available问题:RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 你的key

2.2 dockerfile执行命令

docker build -t 镜像名称 -f /path/to/Dockerfile .

其中,-t 参数指定构建的镜像名称,-f 参数指定使用的 Dockerfile 文件,. 表示使用当前目录作为构建上下文。

三、通过镜像启动docker

3.1 创建docker

  • 常用命令
docker run --gpus all -it -p 8930:2892 --name 容器名称  -v 主机目录:容器目录  镜像名:版本  /bin/bash 

详细说明:https://blog.csdn.net/zhong_jay/article/details/108668246

  • 快速启动镜像
docker run -it --gpus all 镜像名:版本

3.2 启动docker

  • 启动docker
docker start 容器id

注意:其中容器id通过docker ps查询

  • 进入docker
docker exec -it 容器id /bin/bash
  • 关闭docker
docker stop 容器id
  • 删除docker
docker rm 容器id

附录:小知识&问题记录

1. 如何查看ubuntu上cuda和cudnn的版本

要查看 Ubuntu 上的 CUDA 和 cuDNN 版本,可以按照以下步骤进行:

  1. 查看 CUDA 版本

可以使用以下命令来查看 CUDA 的版本:

cat /usr/local/cuda/version.txt

该命令将显示 CUDA Toolkit 的版本号。

也可以用nvidia-smi查看。

  1. 查看 cuDNN 版本

可以使用以下命令来查看 cuDNN 的版本:

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

新版本:

cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

该命令将显示 cuDNN 的版本号和其他相关信息。
如果你的 CUDA 和 cuDNN 都安装在不同的路径中,那么请相应地更改上述命令中的路径。希望以上信息可以帮助你。

2. 如果docker拉取镜像太慢,则更改源

更改源方式
sudo gedit /etc/docker/daemon.json

在文件末尾添加如下内容:

{
    "runtimes": {
        "nvidia": {
            "path": "nvidia-container-runtime",
            "runtimeArgs": []
    	    }
	},
     "registry-mirrors" : ["https://pee6w651.mirror.aliyuncs.com"]
}
sudo systemctl daemon-reload
sudo systemctl restart docker

3. 关于镜像的操作

  1. 删除镜像
docker rmi 

参考链接:

https://cloud.tencent.com/developer/article/1924792
https://blog.csdn.net/wuqingshan2010/article/details/111662824
https://cloud.tencent.com/developer/article/1751221

你可能感兴趣的:(后端技术,docker,容器,运维)