提要: 记录手动搭建GPU版PyTorch Docker镜像的过程。本地主机已经装好了显卡驱动,CUDA, cuDNN, 因此不再累述。本篇博客覆盖以下内容:

  • Docker常用命令
  • 搭建GPU版PyTorch镜像

Docker常用命令

  • ubuntu安装步骤
$ apt-get update
$ apt-get -y install docker.io
# 检查Docker服务的状态
$ service docker.io status
# 一般显示 docker.io start/running, process xxxxx
#
# 把Docker安装为自启动服务,让它随服务器的启动而自动运行
update-rc.d docker.io defaults
#
# 测试Docker安装成功
docker run hello-world
# 如果本地没有hello-world镜像,会自动拉去一个
  • Docker常用命令
### 显示版本信息 (与python, nvcc相比少了两个‘--’)
$ docker version### 了解当前Docker的使用状态(当前容器,镜像数目信息,存储空间占用信息,
# OS内核版本, 发行版本, 硬件资源等)
$ docker info### 拉去一个镜像 ( xxxx 表示某个镜像名字,)
$ docker pull xxxx
# e.g.
# docker pull ubuntu### 查看系统中已有的镜像(images要带‘s')
$ docker images
# e.g.:
# REPOSITORY  TAG    IMAGES ID   CREATED VIRTUAL SIZE
# ubuntu      latest 4ef6axxxxx   5 day ago  84.0M### 从镜像创建docker容器
$ docker run -i -t ubuntu /bin/bash
# or
$ docker run -it 4ef /bin/bash
# 其中 -i, 交互模式,让输入输出都在标准控制台进行;-d,则进入后台
# -t, 为新创建的容器分配一个伪终端
# ubuntu, 用于创建容器的镜像名,可用ID来代替(前3位足够)
# /bin/bash, 在新建容器中运行的命令,可以为任意Linux命令### 离开当前容器,返回宿主机终端,使用组合键 "Ctrl+P" 和 "Ctrl+Q"### 查看当前活动的容器
$ docker ps
# CONTAINER ID  IMAGE  COMMAND  CREATED   STATUS   PORTS NAME
# 610xxxx  ubuntu:latest  "/bin/bash" 1 minute ago Up 1 minute ago prickly_wilson### 宿主机终端与某个容器建立连接
$ docker attach 610### 从容器创建Docker镜像
$ docker commit -m "hhahaha" 610 ubuntu:hhh
# -m, 新镜像说明
# 610, 某个容器的ID
# ubuntu:hhh, 命名最好不要这么随意
# 那么接下来可以查看新生成的镜像,命令 docker images### 基于新的镜像创建一个新的容器(一样的)
$ docker run -it ubuntu:hhh /bin/bash### 给镜像重命名(方便记忆)
$ docker tag IMAGEID(image id) REPOSITORY:TAG### 给容器重命名
$ docker rename old-container-name new-container-name

搭建GPU版PyTorch镜像

首先要安装docker, 其次要安装nvidia docker, 接着安装python, numpy, 最后安装pytorch并检验安装效果。安装docker在前文中,不再累述。

  • 安装nvidia docker2
    安装nvidia docker2 是为了拉取镜像nvidia/cuda,该镜像里包含了相应版本的CUDA和cuDNN,所以就不必再安装CUDA和cuDNN了,方便了不少。安装命令参考这里[https://github.com/NVIDIA/nvidia-docker], 这里给列出如下:
# If you have nvidia-docker 1.0 installed: we need to remove it # and all existing GPU containers
$ docker volume ls -q -f driver=nvidia-docker | xargs -r -I{} -n1 docker ps -q -a -f volume={} | xargs -r docker rm -f
$ sudo apt-get purge -y nvidia-docker# Add the package repositories
$ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \
$   sudo apt-key add -
$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
$ curl -s -L https://nvidia.github.io/nvidia-docker/distribution/nvidia-docker.list | \
$   sudo tee /etc/apt/sources.list.d/nvidia-docker.list
$ sudo apt-get update# Install nvidia-docker2 and reload the Docker daemon configuration
$ sudo apt-get install -y nvidia-docker2
$ sudo pkill -SIGHUP dockerd# Test nvidia-smi with the latest official CUDA image
$ docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi# here nvidia-docker has been installed.

这是最终参考效果

可以看到其中的 nvidia/cuda,接下来基于这个镜像创建一个容器

$ nvidia-docker run -it xxx /bin/bash
# 其中xxx,表示镜像ID
# 效果是终端变为:root@xxxxxxx:
  • 安装python, numpy
# 首先更新源
$ apt-get update# 查看python版本
$ apt-cache madison python
# 选择一个版本,比如 2.7.12-1~16.04# 安装python
$ apt-get install python=2.7.12-1~16.04
# 安装pip, 如果是python2.7,最好不要更新pip
$ apt-get install python-pip# 安装numpy
$ pip install numpy
  • 安装pytorch
    安装命令在pytorch[https://pytorch.org/]首页已经给出. 如果命令能够安装固然好,如果下载失败,就需要先下载下来,再安装。本博主是根据地址给下载下来在安装的
pip install torch-0.4.1-cp27-cp27mu-manylinux1_x86_64.whl 

到这里就算安装结束了,不过最好还是验证一下。

  • 验证安装效果
$ python
$ import torch
$ print torch.cuda.is_available()
# if 'True', congratulation; if 'False', please check again and again.

参考图片效果

  • 生成镜像
    生成镜像之后,镜像可以放在相同配置的机子上,非常方便,节省配置时间.
$ nvidia-docker commit -m 'hhhh' xxx xxxx

需要说明的是,如果nvidia docker安装成功了,nvidia-docker 和docker的效果是一致的。

搭建GPU版PyTorch Docker镜像相关推荐

  1. 基于Anaconda安装GPU版PyTorch深度学习开发环境

    基于Anaconda安装GPU版PyTorch深度学习开发环境 1 安装Anaconda 2 安装GPU计算驱动 2.1 检查是否有合适的GPU 2.2 下载CUDA和cuDNN 2.3 安装CUDA ...

  2. conda安装GPU版pytorch,结果却是cpu版本[找到问题根源,从容解决]

    conda安装GPU版pytorch,结果却是cpu版本[找到问题根源,从容解决] 一.问题描述 二.网上解决方案罗列[此节为反面方案罗列!!!] 三.发现的根本原因[独家] 3.1 pytorch文 ...

  3. gpu版pytorch安装

    pytorch pytorch官网:https://pytorch.org/get-started/locally/ 目前gpu版pytorch安装不需要自己安装cuda,而且注意windows版仅支 ...

  4. Win10 从头开始搭建搭建GPU版darknet【CUDA11.1 + VS2019】

    Win10 从头开始搭建搭建GPU版darknet 第一步:安装英伟达显卡驱动 首先我们需要来到英伟达的官网,这里附上链接nvidia. 进入官网后找到驱动程序,选择GeForce 驱动程序: 点击进 ...

  5. conda安装GPU版pytorch,却是cpu版本的原因

    原因 用官网的命令conda安装GPU版本pytorch,发现是安装的cpu版本.查看了下库的信息,发现有一个pytorch-mutex库,这个就是原因所在,将其卸载后,再重新安装GPU版本就解决了. ...

  6. Win10搭建GPU版Darknet——VS2019+CUDA+CUDNN篇

    一.理论知识简介 为了更好的理解gpu必要性,参考了一位博主的介绍,并对主要内容进行总结如下(如有要详细了解原理的,文末放置原博主链接): 1.1 CPU与GPU的区别 CPU和GPU不同之处在于其设 ...

  7. Windows10+GPU版 pytorch 安装

    由于pytorch官网点击打开链接提供了windows的安装方式,故直接采用这种方法,当然也可以通过anaconda来安装. 由于是安装gpu的版本,故需要先安装cuda以及与其版本相对应的cudnn ...

  8. Harbor的搭建(vmware企业级docker镜像私服)

    1.下载harbor,地址https://github.com/vmware/harbor 2.进入harbor-master/Deploy目录,修改harbor.cfg文件,主要修改以下信息     ...

  9. 【技术栈——00061】搭建关于python项目docker镜像的Dockerfile文件示例(自己的)

    supervisor supervisor进入容器后还需要配置 supervisor的配置文件 脚本文件 gunicorn.conf的配置文件 # 指定基于的基础镜像 FROM ubuntu:18.0 ...

最新文章

  1. JTAG error:can not read register while CPU is running该如何解决
  2. OO实现ALV TABLE 二:ALV显示的三种形式
  3. html 下标签,html标签下
  4. 【caffe-Windows】以mnist为例的hdf5单标签处理——matlab实现
  5. Logistic回归——二分类 —— matlab
  6. VS2010 C++ 插件 VissualAssistX 安装
  7. 用英语描述计算机操作,操作系统的英文介绍
  8. c语言写一个五子棋小游戏
  9. 图层重命名快捷键_实际操作,在PS中如何批量给图层重命名并导出
  10. Java 读取PDF中的表格
  11. php获取扫描枪数据,条码扫描枪的读取技巧
  12. 各种图片格式之间的差别
  13. 程序员是做什么的?怎么成为程序员?
  14. python you-get库
  15. python normalize函数_opencv归一化函数normalize详解
  16. Error:Undefined symbol DMA_Cmd (referred from dac.o)
  17. samba文件共享服务器,全网最详细的samba文件共享服务!
  18. 后棱镜时代的个人信息黑洞,电影《绝对控制》在现实中存在吗?
  19. 基于阻抗控制的工业机器人轨迹跟踪系统 Simulink/Simscape 仿真
  20. 陈松松:视频营销老司机,教你6步轻松剪辑视频

热门文章

  1. Python 头文件
  2. 迅雷看看评分js实现
  3. TCP/IP协议卷学习---基础部分(十五 TFTP)
  4. AJAX实现的网站登陆时的校验码
  5. Unity动态更换APP图标及名称
  6. 企达云服务器,子弹短信大火之际,我们与它的技术服务商聊了聊
  7. 转:CreateFile函数详解
  8. 做扫地机器人这事儿,360是用心的
  9. 如何正确地在Win7上安装wireshark
  10. 我终于卸载了英雄联盟