从头安装与使用一个docker GPU环境

GPU版docker的安装与使用

  • 欢迎使用GPU版docker安装使用说明
    • 使用官方教程安装docker
    • 新建一个GPU版docker环境
    • 调用docker环境执行本地python文件

欢迎使用GPU版docker安装使用说明

使用官方教程安装docker

导入源仓库的GPG key

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

将 Docker APT 软件源添加到你的系统

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

安装命令如下:

 curl -fsSL https://test.docker.com -o test-docker.sh
 sudo sh test-docker.sh

验证安装过程,查看安装的docker 版本,如果返回docker 版本,证明安装成功

docker -v

新建一个GPU版docker环境

在 Docker 中寻找专为深度学习和 GPU 计算准备的基础镜像,通常您会使用 Docker Hub,这是 Docker 的官方镜像仓库,包含了大量的社区和官方维护的镜像。对于深度学习和 GPU 计算,有几个关键的镜像资源您可以利用:

官方深度学习框架镜像:比如 PyTorch 和 TensorFlow 的官方镜像通常已经配置了适合深度学习的环境。在 Docker Hub 上搜索 pytorch/pytorch 或 tensorflow/tensorflow。

要查找这些镜像,您可以在 Docker Hub 的搜索栏中输入关键字,比如 “CUDA”、“PyTorch” 或 “TensorFlow”。选择镜像时,请注意镜像的标签,这些标签表示了不同版本的 CUDA 或深度学习框架。

例如,为了找到适合 PyTorch 和 CUDA 的镜像,您可以在 Docker Hub 上搜索 pytorch/pytorch,然后选择一个标签,比如 1.7.1-cuda11.0-cudnn8-runtime,这个标签意味着这个镜像包含了 PyTorch 1.7.1,CUDA 11.0 和 cuDNN 8。

一旦找到合适的镜像,您可以使用 docker pull 命令来下载它,例如:

docker pull nvidia/cuda:11.1-base

docker pull pytorch/pytorch:1.7.1-cuda11.0-cudnn8-runtime

测试 GPU 访问,要测试 Docker 是否可以访问 GPU,您可以运行一个带有 CUDA 支持的测试镜像,例如:

docker run --gpus all nvidia/cuda:10.0-base nvidia-smi

docker: Error response from daemon: could not select device driver “” with capabilities: [[gpu]].
ERRO[0000] error waiting for container: context canceled
表明 Docker 无法识别或使用 GPU。这通常是因为您的系统缺少所需的 NVIDIA 容器运行时或相应的配置不正确。以下是解决这个问题的几个步骤:
1、安装 NVIDIA Docker 插件
如果您正在使用 Docker 19.03 或更早的版本,您需要安装 nvidia-docker2。对于 Docker 19.03 及以后的版本,虽然有了原生的 GPU 支持,但您仍然需要 NVIDIA 容器工具包。

2、添加 NVIDIA 容器库:

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

3、安装 NVIDIA Docker:

sudo apt-get update
sudo apt-get install -y nvidia-docker2

4、重启 Docker 服务:

sudo systemctl restart docker

5、 验证 NVIDIA Docker 安装
运行以下命令来验证 NVIDIA Docker 是否正确安装:

docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi

出现如下界面表明容器可成功调用本地GPU,之后就是配置容器需要的代码插件。
在这里插入图片描述

调用docker环境执行本地python文件

1、定位您的 Python 文件:

确定您要执行的 Python 文件的路径。例如,假设您的文件位于 /path/to/your/script.py。

2、选择或创建 Docker 镜像:

确保您有一个包含所需 Python 版本和依赖库的 Docker 镜像。假设您使用的是 liqiang12689/laconda:v1 镜像。

3、运行 Docker 容器并挂载文件:

使用 Docker 的 -v 参数将本地文件或目录挂载到容器中。以下命令将本地目录 /path/to/your 挂载到容器的 /app 目录,并以交互模式启动容器:

docker run -it -v /path/to/your:/app liqiang12689/laconda:v1 /bin/bash

这样,容器内的 /app 目录现在包含您的 Python 文件。

4、在容器内执行 Python 文件:

容器启动后,您将进入其命令行界面。切换到挂载的目录:

cd /app

5、然后,使用 Python 运行您的脚本:

python script.py  # 或 python3 script.py,取决于您的 Python 版本

这将执行您的本地 Python 脚本 script.py。

6、退出容器:

完成后,您可以通过输入 exit 或按 Ctrl+D 退出容器。

请记住,如果您的 Python 脚本有任何外部依赖或特定的环境需求,您需要确保这些依赖在 Docker 镜像中可用。您可能需要创建一个自定义 Docker 镜像,其中包含您的代码依赖项,或者在运行容器之前手动安装它们。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/312876.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

电脑怎么取消开机密码?教你如何快速取消

电脑开机密码是保护个人隐私和计算机安全的重要手段,但有时用户可能希望取消这个设置以提高使用便捷性。本文将介绍三种电脑怎么取消开机密码的方法,适用于不同品牌不同类型的电脑,为用户提供更灵活的操作选择。 方法1:使用系统设…

强迫症福音 格式化代码后的sql语句 CASE WHEN THEN ELSE END 语句如何转为一行显示

强迫症福音 格式化代码后的sql语句 CASE WHEN THEN ELSE END 语句如何转为一行显示 一、背景二、解决办法三、更多有用的工具 一、背景 在日常开发中,当美化或格式化代码后,CASE WHEN语句会出现换行且不易阅读情况,这给开发造成了一定的不便…

K8s---存储卷(动态pv和pvc)

当我要发布pvc可以生成pv,还可以共享服务器上直接生成挂载目录。pvc直接绑定pv。 动态pv需要两个组件 1、卷插件:k8s本生支持的动态pv创建不包括nfs,需要声明和安装一个外部插件 Provisioner: 存储分配器。动态创建pv,然后根据pvc的请求自动…

压测工具ab

Apache Benchmark(简称ab) 是Apache安装包中自带的压力测试工具 ,简单易用, Apache的ab命令模拟多线程并发请求,测试服务器负载压力,也可以适用于其他服务:nginx、lighthttp、tomcat、IIS等其它Web服务器的压力 采用平台&#xf…

2-认识小程序项目

基本结构 myapp├─miniprogram┊ └──pages┊ ┊ └──index┊ ┊ ┊ ├──index.json┊ ┊ ┊ ├──index.ts┊ ┊ ┊ ├──index.wxml┊ ┊ ┊ └──index.wxss┊ ┊ └──logs┊ ┊ ├──index.json┊ ┊ ├──index.ts┊ ┊ ├…

面向对象的装饰器

【 1 】什么是property property是一种特殊的属性,访问它时会执行一段功能(函数)然后返回值 【 2 】使用方法和具体实例 面向对象的装饰器是一种在面向对象编程中用于修改类或方法行为的技术。装饰器提供了一种灵活的方式。可以在不修改原…

58.leetcode 最后一个单词的长度

一、题目 二、解答 1. 思路 分2种情况 第一种情况只有一个单词,不包含空格:这种情况直接返回单词本身的长度。第二种情况包含空格:先去掉首尾的空格,根据空格切割字符串生成一个字符串列表,返回倒数第一个索引位置字…

k8s集群配置NodeLocal DNSCache

一、简介 当集群规模较大时,运行的服务非常多,服务之间的频繁进行大量域名解析,CoreDNS将会承受更大的压力,可能会导致如下影响: 延迟增加:有限的coredns服务在解析大量的域名时,会导致解析结果…

大模型学习与实践笔记(五)

一、环境配置 1. huggingface 镜像下载 sentence-transformers 开源词向量模型 import os# 设置环境变量 os.environ[HF_ENDPOINT] https://hf-mirror.com# 下载模型 os.system(huggingface-cli download --resume-download sentence-transformers/paraphrase-multilingual-…

网站ICP备案和公安备案教程

由于最近华为云那边的服务器到期了,而续费的价格比较贵一点,刚好阿里云这边有活动就入手了一台,但是将网站迁移过来后发现又要进行ICP备案,那就备案呗。但是备案完成之后发现还有一个公安备案,真让人头大啊... 很多人也…

怎么挑选一体化污水处理设备

选择一体化污水处理设备是一个关键决策,它直接影响到污水处理系统的效能和运行成本。随着环保意识的日益提高,各种污水处理设备也不断地涌现出来。那么,在众多选项中,如何挑选一体化污水处理设备?本文将为您提供一些建…

17- Echarts 配置系列之:单轴 singleAxis

singleAxis: 用于展示只有一个数据维度的数据。它通常用于展示时间序列数据或者数值序列数据。 对于单轴的应用和绘制,其实就相当于我们平时的直角坐标系少一个 X 或者 Y ,然后进行图形绘制。 注意: 1.在使用单轴时&#xff0…

2024年最好用的简历编辑工具,助你腾飞职业生涯!

随着科技的不断发展,求职竞争也愈发激烈。在2024年,如何在众多求职者中脱颖而出成为关键问题。为了帮助大家在职业生涯中取得更好的机会,特别推荐一款在2024年最为出色的简历编辑工具——芊芊简历。 1. 创新的编辑功能 芊芊简历拥有直观易用…

使用JMeter发送FTP请求

使用jmeter发送FTP请求: FTP(File Transfer Protocol 文件传输协议)用于Internet上文件的双向传输。作为一个应用程序不同的操作系统也有不同的实现,为了保证可以跨平台,FTP程序都要遵循相同协议,FTP有上传…

05- OpenCV:图像操作和图像混合

目录 一、图像操作 1、读写图像 2、读写像素 3、修改像素值 4、Vec3b与Vec3F 5、相关的代码演示 二、图像混合 1、理论-线性混合操作 2、相关API(addWeighted) 3、代码演示(完整的例子) 一、图像操作 1、读写图像 (1)…

JVM基础(7)——ParNew垃圾回收器

作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO 联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬 学习必须往深处挖&…

信息系统中的需求分析

软件需求是指用户对新系统在功能、行为、性能、设计约束等方面的期望。根据IEEE的软件工程标准词汇表,软件需求是指用户解决问题或达到目标所需的条件或能力,是系统或系统部件要满足合同、标准、规范或其他正式规定文档所需具有的条件或能力,…

监督学习 - 支持向量机(Support Vector Machines,SVM)

什么是机器学习 支持向量机(Support Vector Machines,SVM)是一种强大的机器学习算法,可用于解决分类和回归问题。SVM的目标是找到一个最优的超平面,以在特征空间中有效地划分不同类别的样本。 基本原理 超平面 在二…

亚马逊卖家福音:鲲鹏系统全自动化操作,让你的账号更安全、生意更畅通

我想向大家分享一款让我的生意更轻松、更高效的神奇工具——亚马逊鲲鹏系统。这是一款功能齐全的全自动化操作软件,简直就是我的电商利器。下面我将为大家详细介绍一下我在使用这个系统时的真实体验。 首先,亚马逊鲲鹏系统的全自动批量注册买家号功能真是…

maya , motionbuilder 骨骼动画相关操作与脚本

文章目录 maya 解除/增加父子关系maya 修改骨骼局部坐标系mb同时打开两个动画文件显示骨骼局部坐标系删除不需要的骨骼重命名骨骼 maya 解除/增加父子关系 解触: 右键->操作->解除父子关系 增加:鼠标中键拖拽 maya 修改骨骼局部坐标系 注意一般就是改旋转&…