草庐IT

从头搭建pytorch Docker镜像

石头变钻石? 2023-09-04 原文

目录

前言

此文不需要前言,请从正文开始

开始搭建

正文

默认大家都是有一定docker基础的,没有的话建议去花个20分钟学一下基础知识。相对于配置cuda来说,我觉得pytorch还是更简单一些。因此这里以官方的nvidia/cuda:10.2-cudnn8-runtime-ubuntu18.04为基础,构建pytorch深度学习环境。你可以根据自己的需求选择合适的版本,地址如下:cuda官方docker镜像地址,python可以选择官方纯净版,好处是小,坏处是什么都得自己配置。也可以选择conda,好处是省心,坏处是比较大

从docker hub下载镜像

docker pull nvidia/cuda:10.2-cudnn8-runtime-ubuntu18.04

下载完成后使用docker images确认镜像信息。

创建容器并运行

docker run -it --name pytorch1.12.1-cuda10.2  nvidia/cuda:10.2-cudnn8-runtime-ubuntu18.04 /bin/bash  # 这里镜像名称可以使用ID号,为了更清晰这个使用名称

PS: 一般创建运行后就会直接进入容器,如果没有,先使用docker ps -a查看容器信息,然后使用docker exec --it 容器ID /bin/bash进入容器内部。

更新容器

运行以下命令更新系统和安装基础包

apt update
apt install -y wget build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev libbz2-dev liblzma-dev
apt clean
rm -rf /var/lib/apt/lists/*

这里可能出现的报错:

W: GPG error: https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu1804/x86_64  > InRelease: The following signatures couldn't be verified because the public key is not available:  NO_PUBKEY A4B469963BF863CC
E: The repository 'https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64   InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

解决办法:

  • 1、获取gpg公钥
gpg --keyserver keyserver.ubuntu.com --recv-keys A4B469963BF863CC
  • 2、导出公钥,加入到 apt 信任密钥
gpg --export --armor A4B469963BF863CC | apt-key add -
  • 然后再运行上面的命令即可

*安装python

这里为了清晰的知道文件在哪,先新建临时目录,然后进入到目录下下载python源码包,再编译安装。

  • 首先新建并进入临时目录
    mkdir /temp
    cd temp
  • 下载python
    wget https://www.python.org/ftp/python/3.7.13/Python-3.7.13.tgz
  • 然后解压
    tar -xvf Python-3.7.13.tgz
  • 进入解压后的python文件夹
    cd Python-3.7.13
  • 编译安装
    –prefix用于指定安装位置
    –enable-optimizations用于优化配置
    ./configure --prefix=/usr/local/python3.7 --enable-optimizations
    ./configure --enable-optimizations
    编译步骤较为漫长,根据cpu核心数,使用-j选项采用多线程编译,可以加快编译速度 ,例如我的CPU核心数为8,线程数=核心数*
    make -j8
    make install
  • 建立建立指向python3.7和pip3.7的软链接
    ln -s /usr/local/python3.7/bin/python3.7 /usr/bin/python3.7
    ln -s /usr/local/python3.7/bin/pip3.7 /usr/bin/pip3

*安装anaconda

下载地址:https://repo.anaconda.com/archive/index.html
这里我以2021.05版本为例:

  • 下载安装
wget -c https://repo.anaconda.com/archive/Anaconda3-2021.05-Linux-x86_64.sh
# 安装
bash Anaconda3-2021.05-Linux-x86_64.sh

然后一直按enter直到出现需要输入yes。输入yes后会提示你安装路径

Anaconda3 will now be installed into this location:
/root/anaconda3

  - Press ENTER to confirm the location
  - Press CTRL-C to abort the installation
  - Or specify a different location below

[/root/anaconda3] >>>

这里可以填个自己的路径,记录一下,或者默认的也可以,按enter继续。

初始化,输入yes。这里也可以看到安装路径。

Do you wish the installer to initialize Anaconda3
by running conda init? [yes|no]
[no] >>> yes


然后会提示安装完成。

  • 配置环境变量
export PATH=~/anaconda3/bin:$PATH  # 添加环境变量
source ~/.bashrc  # 刷新bashrc

这里的export PATH填的是conda的bin文件地址。默认地址可以填上面那个到这里可以输入python和conda list查看是否安装成功。

  • 镜像源配置
    这里和python配置镜像源一样。
    打开配置文件
    vi ~/.condarc
    然后输入
channels:
  - http://mirrors.aliyun.com/anaconda/cloud/stackless
  - https://mirrors.aliyun.com/anaconda/cloud/simpleitk
  - https://mirrors.aliyun.com/anaconda/cloud/rdkit
  - https://mirrors.aliyun.com/anaconda/cloud/rapidsai
  - https://mirrors.aliyun.com/anaconda/cloud/qiime2
  - https://mirrors.aliyun.com/anaconda/cloud/pyviz
  - https://mirrors.aliyun.com/anaconda/cloud/pytorch3d
  - https://mirrors.aliyun.com/anaconda/cloud/pytorch-test
  - https://mirrors.aliyun.com/anaconda/cloud/pytorch
  - https://mirrors.aliyun.com/anaconda/cloud/psi4
  - https://mirrors.aliyun.com/anaconda/cloud/plotly
  - https://mirrors.aliyun.com/anaconda/cloud/omnia
  - https://mirrors.aliyun.com/anaconda/cloud/ohmeta
  - https://mirrors.aliyun.com/anaconda/cloud/numba
  - https://mirrors.aliyun.com/anaconda/cloud/msys2
  - https://mirrors.aliyun.com/anaconda/cloud/mordred-descriptor
  - https://mirrors.aliyun.com/anaconda/cloud/menpo
  - https://mirrors.aliyun.com/anaconda/cloud/matsci
  - https://mirrors.aliyun.com/anaconda/cloud/intel
  - https://mirrors.aliyun.com/anaconda/cloud/idaholab
  - https://mirrors.aliyun.com/anaconda/cloud/fermi
  - https://mirrors.aliyun.com/anaconda/cloud/fastai
  - https://mirrors.aliyun.com/anaconda/cloud/dglteam
  - https://mirrors.aliyun.com/anaconda/cloud/deepmodeling
  - https://mirrors.aliyun.com/anaconda/cloud/conda-forge
  - https://mirrors.aliyun.com/anaconda/cloud/caffe2
  - https://mirrors.aliyun.com/anaconda/cloud/c4aarch64
  - https://mirrors.aliyun.com/anaconda/cloud/bioconda
  - https://mirrors.aliyun.com/anaconda/cloud/biobakery
  - https://mirrors.aliyun.com/anaconda/cloud/auto
  - https://mirrors.aliyun.com/anaconda/cloud/Paddle
  - https://mirrors.aliyun.com/anaconda/pkgs/r
  - https://mirrors.aliyun.com/anaconda/pkgs/msys2
  - https://mirrors.aliyun.com/anaconda/pkgs/main
  - https://mirrors.aliyun.com/anaconda/pkgs/free
show_channel_urls: true

ssl_verify: true
allow_conda_downgrades: true

最后按esc,输入:wq保存退出。

  • 配置pip镜像
mkdir ~/.pip
cd ~/.pip/
vi pip.conf

然后输入

[global] 
index-url = http://mirrors.aliyun.com/pypi/simple/ 
[install] 
trusted-host=mirrors.aliyun.com

安装pytorch

pytorch安装相对很简单

  1. 点击这里进入打开pytorch官方
  2. 选择适合自己的torch版本,复制命令。注意conda和pip是分开的,cuda版本查看可以参考这篇文章
  3. 在容器中粘贴命令运行,在弹出时输入y继续运行,然后等待安装完成即可。
  4. 使用pip list/conda list查看是否有torch包,使用以下命令验证是否安装成功。
import torch
print(torch.__version__)

参考文献:

Pytorch Docker镜像构建教程(不同系统、CUDA、Python版本)
docker容器安装TensorFlow_gpu 版本遇到的坑。。。
Ubuntu18.04安装python3.7
27 | Ubuntu18.04.5 安装python3.7及卸载

有关从头搭建pytorch Docker镜像的更多相关文章

  1. LinuxGUI自动化测试框架搭建(二十二)-框架主入口main.py设计&log日志调用 - 2

    (二十二)-框架主入口main.py设计&log日志调用和生成1测试目的2测试需求3需求分析4详细设计4.1新建存放日志目录log4.1.1配置config.py中写入log的目录4.2`baseInfo.py`中加入日志4.3`test_gedit.py`中加入日志4.4主函数入口main.py中调用日志5调用日志主函数main.py源码6`baseInfo.py`源码7`test_gedit.py`源码8运行效果9目前框架结构1测试目的组织运行所有的测试用例,并调用日志模块,便于问题定位。

  2. 基于ActiveMQ搭建MQTT服务备忘(二):webapp集成 - 2

    (1)为什么写这个话题(Why)读万卷书不如行千里路。这次搭建MQTT服务,遇到了一些误解,特此记录备忘。主要包括:(1)服务(Broker)的账户管理与网页管理平台的账户(2)与web应用的集成(Spring系)(2)ActiveMQ版本选择因为JAVA环境是JDK8,所以按兼容性考虑选择了ActiveMQ5.15的最后版本5.15.15。如果你是JDK11则可考虑ActiveMQ的最新版本5.17或5.18。ActiveMQ支持MQTTv3.1.1andv3.1。(3)ActiveMQ与web应用的集成主要介绍与Spring系的webapp集成(SpringBoot和SpringMVC)。

  3. 【微服务笔记23】使用Spring Cloud微服务组件从0到1搭建一个微服务工程 - 2

    这篇文章,主要介绍如何使用SpringCloud微服务组件从0到1搭建一个微服务工程。目录一、从0到1搭建微服务工程1.1、基础环境说明(1)使用组件(2)微服务依赖1.2、搭建注册中心(1)引入依赖(2)配置文件(3)启动类1.3、搭建配置中心(1)引入依赖(2)配置文件(3)启动类1.4、搭建API网关(1)引入依赖(2)配置文件(3)启动类1.5、搭建服务提供者(1)引入依赖(2)配置文件(3)启动类1.6、搭建服务消费者(1)引入依赖(2)配置文件(3)启动类1.7、运行测试一、从0到1搭建微服务工程1.1、基础环境说明(1)使用组件这里主要是使用的SpringCloudNetflix

  4. ruby-on-rails - 搭建Ruby开发环境 - 2

    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我目前正在尝试搭建一个学习Ruby的开发环境。环境主要是为了掌握这门语言,但我很可能会在很长一段时间后转向使用Rails进行开发。以Web开发为目标,我想了解首选的Web服务器和数据库。我打算在虚拟机上设置环境,所以我不担心把它弄坏。因此,我愿意使用Linux发行版、OSX或Windows作为操作系统。我正从C#转向,所以我想在一定程度上被迫采用Ruby的

  5. geth下载安装配置环境及联盟链的搭建 - 2

    以太坊概论考察课更具课堂教学讲解,参考开放资料。使用所学的知识,创建项目并完成要求的内容。包含的功能和要求具体如下:一:安装并运行geth客户端1、下载安装geth首先下载geth:https://geth.ethereum.org/downloads/​选择路径↓2、配置环境变量3、运行geth如下命令所示:查看geth命令。使用gethversion查看geth版本号,判断geth是否成功安装。如下命令所示:`gethversion`可以通过geth--help查看geth工具所支持的命令和相关参数,方便后期关于geth的操作。如下命令所示:geth--help运行结果如下:二:搭建get

  6. 五-1、elasticsearch集群搭建(ES集群搭建) - 2

    目录一、下载Elasticsearch1.选择你要下载的Elasticsearch版本二、采用通用搭建集群的方法三、配置三台es1.上传压缩包到任意一台虚拟机中2.解压并修改配置文件(配置单台es)3.配置三台es集群4.设置后台启动和开机自启(可选)一、下载Elasticsearch1.选择你要下载的Elasticsearch版本es下载地址这里我下载的是二、采用通用搭建集群的方法集群搭建方法三、配置三台es1.上传压缩包到任意一台虚拟机中上传方式有两种第一种:使用xftp上传直接拖动过去就可以了。第二种:使用lrzsz先安装yum-yinstalllrzsz切换到要上传的位置cd/opt/

  7. ruby-on-rails - 从头开始嵌套评论 - 2

    假设我有一个评论模型:classComment我可以像这样在View中显示评论实例的回复:comment.repliesdo|reply|reply.contentend但是,我如何循环遍历回复的回复?它的答复是什么?它的回复广告infitum?我觉得我们需要通过类方法创建一个回复的多维数组,然后在View中循环遍历该数组。我不想用gem,我想学习 最佳答案 似乎你所拥有的离你想要的只有一步之遥。您只需要使用递归为每个回复调用与调用原始评论相同的代码。例如注意:这不是最有效的做事方式。每次调用comment.replies事件记录时

  8. 【Element UI通用后台管理系统】(一)项目搭建 - 2

    一、使用Yarn作为项目的包管理工具1、Yarn是什么?“Yarn是由Facebook、Google、Exponent和Tilde联合推出了一个新的JS包管理工具,正如官方文档中写的,Yarn是为了弥补npm的一些缺陷而出现的。”这句话让我想起了使用npm时的坑:npminstall的时候非常慢,特别是新的项目拉下来要等半天,删除node_modules,重新install的时候依旧如此。同一个项目,安装的时候无法保持一致性。由于package.json文件中版本号的特点,下面三个版本号在安装的时候代表的含义不同。 "5.0.3"   表示:安装指定的5.0.3版本"~5.0.3"  表示:安

  9. 手把手教你搭建SpringCloud Alibaba之生产者与消费者 - 2

      SpringCloudAlibaba全集文章目录:零、手把手教你搭建SpringCloudAlibaba项目一、手把手教你搭建SpringCloudAlibaba之生产者与消费者二、手把手教你搭建SpringCloudAlibaba之Nacos服务注册中心三、手把手教你搭建SpringCloudAlibaba之Nacos服务配置中心四、手把手教你搭建SpringCloudAlibaba之Nacos服务集群配置五、手把手教你搭建SpringCloudAlibaba之Nacos服务持久化配置六、手把手教你搭建SpringCloudAlibaba之Sentinel实现流量实时监控七、手把手教你搭

  10. 【保姆级】python最新版3.11.1开发环境搭建,看这一篇就够了 - 2

    【保姆级】Python最新版开发环境搭建,看这一篇就够了(适用于Python3.11.2安装)文章目录【保姆级】Python最新版开发环境搭建,看这一篇就够了(适用于Python3.11.2安装)一、Python解释器安装Windows安装步骤环境变量配置(非必要)MacOS安装步骤Linux安装步骤二、PyCharm安装三、创建Python工程工欲善其事必先利其器,在使用Python开发程序之前,在计算机上搭建Python开发环境是必不可少的环节,目前Python最新稳定版本是3.11.1,且支持到2027年,如下图所示本文手把手带你从0到1搭建Python最新版3.11.1开发环境,堪称保

随机推荐