安装支持CUDA的Docker工具

1.安装Docker

# 安装系统工具
$ sudo apt-get update
$ sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# 安装GPG证书
$ curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# 写入软件源信息
$ sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# 更新并安装 Docker-CE
$ sudo apt-get -y update
$ sudo apt-get -y install docker-ce

2.安装Nvidia-docker2

$ 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
$ sudo apt-get install -y nvidia-docker2
$ sudo pkill -SIGHUP dockerd
$ sudo docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi # 测试

测试过程中自动从网上下载镜像nvidia/cuda,该镜像大小为2.83G,只包含基本的9.1版本的CUDA环境,不含Python相关工具。

推荐Docker镜像

$ docker pull registry.cn-shanghai.aliyuncs.com/tcc-public/pytorch:1.1.0-cuda10.0-py3
$ docker pull registry.cn-shanghai.aliyuncs.com/tcc-public/pytorch:latest-cuda9.0-py3 

终端运行方法

$ nvidia-docker run --rm -it registry.cn-shanghai.aliyuncs.com/tcc-public/pytorch:latest-cuda9.0-py3 bash

它们的大小分别是4.17G和3.56G,以cuda-10.0版本为例,其内部为Ubuntu 16.04系统,可使用apt-get安装软件,其Python版本为3.6.5。pytorch版本为1.0.0。

Docker 封装anaconda环境,生成镜像并打包

操作步骤

1.拉取镜像

continuumio/anaconda3 镜像是docker镜像库中star数最高的镜像

docker pull continuumio/anaconda3

用 docker images 指令 查看是否拉取成功。

2.用continuumio/anaconda3镜像创建一个名为test的容器

docker run --name test -idt continuumio/anaconda3

idt中的 -d 指定容器的运行模式,可以使docker 的服务是在后台运行。但加了 -d 参数默认不会进入容器

3.运行下面命令检查有名为test的新容器被创建,容器一被创建就自动运行

docker ps -a

4.进入test容器,查看conda位置

docker exec -it test /bin/bash

用exec进入容器,在使用快捷键退出容器时,不会停止容器。

whereis anaconda
#或者使用
conda info --envs

图中可以看出在容器内部,conda的路径是/opt/conda 。

查看后快捷键退出容器

#快捷键
Ctrl+d

5.在本地环境中将本地环境复制到docker中

●退出容器后,在本地环境中将需要打包的本地复制到docker中:

docker cp /home/xmy/anaconda/envs/yolov5 test:/opt/conda/envs

其中 : /home/xmy/anaconda/envs/yolov5 是自己需要打包的本地环境, test是容器名,/opt/conda是在容器内使用 conda info --envs 查看到的根目录

●接着再进入容器 查看环境是否复制成功(然后再退出容器):

6.在本地环境中将本地代码复制到docker中

●退出容器后,在本地环境中将需要打包的代码复制到docker中:

 docker cp /home/xmy/.../yolov5-master test:/root/

将本地文件 /home/xmy/…/yolov5-master 复制到test容器的根目录下。

●容器内查看复制结果并退出容器:

到此为止,该test容器中已经包含我们所需的代码和环境,可以对其进行打包

7.将容器保存为镜像

●退出容器后,执行:

 docker commit -a 'author' -m 'instruction' test image_test

该命令各字段: test :容器名字 image_test:保存的镜像的名字。

●查看镜像 ,可以看到已经生成了名为image_test的新镜像:

8.将镜像存为压缩包

●cd到一个指定目录,以便于查找保存的压缩包。
●压缩:

 docker save -o test_tar.tar image_test

test_tar.tar: 压缩包名称 , image_test: 镜像名称。

●在该目录下,可以查看到生成的名为test_tar.tar的压缩包:

到此为止,本地的conda环境便打包完成。

读取镜像

在宿主机上执行:
●将打包好的镜像压缩包拷贝到宿主机上。
●cd 到压缩包目录,执行:

docker load -i test_tar.tar

运行docker images 查看是否读取成功,可发现已经生成了一个名为image_test 的新镜像:

●用image_test镜像创建一个名为create_test的容器:

docker run --name create_test -idt image_test

PS:若创建容器时需要对容器内文件与容器外文件做映射,则需要执行以下指令:

docker run --name create_test -v /home/b/hxb:/root/hxb -idt image_test

-v /home/b/hxb:/root/hxb:该指令可以在创建容器时将 容器外的/home/b/hxb目录映射到容器内的/root/hxb目录。这样可以在容器内直接访问容器外的/home/b/hxb文件夹。

●进入容器内便可发现已经将环境与代码全部打包过来了:

Docker调用GPU

docker虽然安装好了,但是安装到这一步的docker只能在cpu下使用或者将docker的gpu环境导出到宿主机上使用,无法在docker中使用gpu。

nvidia-docker是一个可以使用GPUdockernvidia-docker是在docker上做了一层封装,需要先安装好docker

1.安装过程

# Add the package repositories
$ 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$ sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
$ sudo systemctl restart docker

2.实际使用

本文以上述anaconda镜像为例:

docker run --gpus all -ti image_test /bin/bash

可选方案:ubuntu+docker+cuda+anaconda+pytorch配置

一般新的docker中只有这一个镜像,这时候就需要我们配置新的镜像。配置新镜像的方法有两种:

自己通过镜像新建容器,并配置对应的环境,最后保存为新镜像

网上下载合适的镜像,然后适当的修改

考虑到我们需要配置的环境比较复杂(cuda、cudnn、anaconda、pytorch),很明显选择第二种方法:

这里我推荐https://hub.docker.com/

点图中的链接进入搜索页面,搜索“pytorch”相关,选一个下载量比较高的就可以了,这里我选择的是“pytorch/conda-cuda”。

用给出的代码下载之后查看镜像列表:

root@user:/home# docker pull pytorch/conda-cuda
root@user:/home# docker images

这样我们就有了一个已经配置好cuda、cudnn和anaconda的环境了

可选的自行按照conda建立虚拟环境或者按照上述创建容器,cp本地代码打包方法

docker导入镜像报错磁盘空间不足的解决方法

安装docker时,默认的安装位置是/var/lib/docker。
可以用docker info 查看 镜像存放的目录

docker load -i image_test.tar#报错
no space left device

解决方法:

先看看哪块有空间

#查看空间
df -Th
#查找docker.service文件
sudo find / -name docker.service

第一种,docker没有任何服务存在

1、配置 /usr/lib/systemd/system/docker.service

vim /usr/lib/systemd/system/docker.service

2.找到ExecStart这行,将原来的注释掉,更改成如下的形式

[Service]
ExecStart=/usr/bin/dockerd  --graph=/data/docker

3、保存退出,重启docker

systemctl daemon-reload
systemctl restart docker
systemctl enable dockerdocker load -i image_test.tar

第二种,docker里还有服务和数据存在

参考:docker导入镜像报错磁盘空间不足的解决方法_A-刘晨阳的博客-CSDN博客_docker加载镜像空间不够

几个常用docker命令

●启动容器:

docker stat 'CONTAINER ID'

●停止容器:

docker stop 'CONTAINER ID'

●删除容器(由于容器即使停止也会占用存储空间,所以有必要删除没用的容器来释放空间):

docker rm 'CONTAINER ID'

●删除镜像(需先删除关联的容器):

docker rmi 'IMAGE ID'

参考链接:

Docker 封装anaconda环境,生成镜像并打包,纯小白一文读懂(二)_豆蔻二八的博客-CSDN博客_docker打包conda环境
搭建深度学习的docker环境_xieyan0811的博客-CSDN博客

在Docker下配置深度学习环境_通晓路的博客-CSDN博客_docker torch

docker导入镜像报错磁盘空间不足的解决方法_A-刘晨阳的博客-CSDN博客_docker加载镜像空间不够
Docker调用GPU_Bruce_0712的博客-CSDN博客_docker调用gpu

ubuntu搭建深度学习的docker环境相关推荐

  1. 从零开始搭建深度学习服务器: 基础环境配置(Ubuntu + GTX 1080 TI + CUDA + cuDNN)

    从零开始搭建深度学习服务器: 基础环境配置(Ubuntu + GTX 1080 TI + CUDA + cuDNN) 首先先声明一下 这篇是转载来自  : 从零开始搭建深度学习服务器: 基础环境配置( ...

  2. 1、搭建深度学习图像识别开发环境

    搭建深度学习开发环境 1.前言 1.1 本文章约定 1.2 开始条件 1.3 视频教程 1.4 整个流程概览 1.5 所需硬件 1.6 软件版本概览 2.安装 Anaconda 2.1 创建环境 tf ...

  3. 【UBUNTU】深度学习服务器中环境配置问题以及遇到的坑。

    前言 离开实验室了,记录一下给需要的同学看看,研一最初的时候疯狂白嫖舍友的服务器(感谢我JL兄),终于在2019年4月份老王可算是给咱们的破机器更新换代了,还掏来了一台TITAN XP,经过一系列地抓 ...

  4. 服务器上搭建深度学习模型运行环境:ubuntu

    1.购买服务器 我买了腾讯云轻量级服务器,默认系统为CentOS 7.6,我重装成ubuntu18. 2. 搭建ubuntu可视化界面(没必要) 参考链接:搭建 Ubuntu 可视化界面 我在配置 V ...

  5. ubuntu搭建深度学习环境

    目录 安装cuda和cudnn 安装anaconda 卸载anaconda Ubuntu安装gedit [Linux]conda: command not found解决办法 创建虚拟环境 pytho ...

  6. Ubuntu搭建深度学习环境(3090显卡)

    点击下方名片关注和星标『人工智能技术』!

  7. 2.树莓派4B 64位操作系统 从零搭建深度学习项目运行环境

    树莓派的环境配置 文章目录 树莓派的环境配置 1.系统烧录 1.1 系统选择 1.1.1 Raspbian OS:官方的树莓派操作系统 1.1.2 Ubuntu MATE:适合通用计算需求 1.1.3 ...

  8. ubuntu16.04+七彩虹GTX1060的NVIDIA驱动+Cuda8.0+cudnn5.1+tensorflow+keras搭建深度学习环境【学习笔记】【原创】

    平台信息: PC:ubuntu16.04.i5.七彩虹GTX1060显卡 作者:庄泽彬(欢迎转载,请注明作者) 说明:参考了网上的一堆的资料搭建了深度学习的开发环境,下班在宿舍折腾了好几个晚上才搞定, ...

  9. centos8.2+Tesla T4搭建深度学习运行环境

    因为工作需要,租借了腾讯云服务器.购买的配置是centos 8.2系统,512G的存储空间,另外显卡是Tesla T4,20核CPU,80G内存,在此基础上搭建深度学习的运行环境,将要安装pytorc ...

最新文章

  1. C语言的内联函数的作用
  2. Liststring里 每个元素重复了多少次
  3. C语言学习之输入10个数,输出其中最大的一个数。
  4. uni-app 发送form-data参数的请求方式传值给后台
  5. Wireshark文档阅读笔记-TCP 4 times close解析与实例
  6. Stanford机器学习---第五讲. 神经网络的学习 Neural Networks learning
  7. python提醒事件_监控服务器空间使用情况-crontab+python邮件提醒
  8. python把cookie分割成字典
  9. 122. PHP 性能问题(3)
  10. excel数据正在计算机,excel数据太多表格太卡-急!Excel数据量大,电脑卡死?
  11. 程序员工资真的高吗?
  12. 微型计算机中的中央处理器由什么组成,微型计算机主机由什么组成
  13. 基因治疗最新研究进展(2022年5月)
  14. 自旋量子计算机,人类首次直接“看到”量子自旋效应
  15. ffmpeg图片+音频合成视频
  16. 校招回忆录---小米篇
  17. 美术加:想要画好人物头像,头骨结构先吃透~
  18. UpdateData用法解释
  19. Zookeeper安装部署调试命令
  20. Unity3D学习之打飞碟游戏

热门文章

  1. Python GUI编程(Tk)--聊天窗口--键盘值查询
  2. 小胖之人是从哪里来的
  3. 先梳理好思维,再动手实战这样会事半功倍
  4. dw怎么将html模板导入,DW如何创建模板?如何将网页存储为模板?
  5. val()和.value的区别和用法
  6. Java Json Binding JSON-B使用示例
  7. 如果快速有效的读懂别人的代码?
  8. 批改网如何进行复制粘贴
  9. css动画(图片触碰变大)
  10. JAVA计算机毕业设计音乐视频分享网站Mybatis+源码+数据库+lw文档+系统+调试部署