Ubuntu16下GPU版Docker的安装使用命令记录+Docker常用命令汇总

简单记录一下安装GPU支持的Docker流程

一、安装Docker

卸载旧版本:

$ sudo apt-get remove docker docker-engine docker-ce docker.io

安装新版本:

$ sudo apt-get update
$ sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
$ sudo apt-get update
# 获取所有available的docker版本
$ apt-cache madison docker-ce
# 如获取的结果为docker-ce | 5:19.03.4~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Package,则 VERSION=5:19.03.4~3-0~ubuntu-bionic
# 不指定版本,默认最新版,但实测有可能下载的不是最新版
$ sudo apt-get install -y docker-ce
# 指定版本
$ sudo apt-get install docker-ce=<VERSION>

检查是否成功:

# 输入这行命令,如果不报错而是弹出一堆提示就说明OK
$ docker

 

二、安装Nvidia-docker

按照这个链接中的操作进行安装和测试即可

https://github.com/NVIDIA/nvidia-docker

 

三、拉取镜像

Docker的CUDA和CUDNN环境要和主机一样!

Docker的CUDA和CUDNN环境要和主机一样!

Docker的CUDA和CUDNN环境要和主机一样!

首先要在Hub上找你需要的镜像(注:要找旧版本的镜像,需要点进最新版本的镜像然后找之前的版本)

拉取镜像的命令在网页右侧,可以直接复制。例:

$ sudo docker pull pytorch/pytorch:0.4.1-cuda9-cudnn7-devel

拉取完毕后查看镜像列表确认拉取成功

$ sudo docker image ls

 

四、运行镜像并指定GPU

根据拉取的镜像ID,可以运行该镜像了,此时需要指定GPU才可以

# 3fe是镜像ID的前三位,实际操作时改成自己对应镜像ID的前三位就可以了
$ sudo docker run --gpus all -it 3fe /bin/bash

在进入workspace后,运行nvidia-smi进行测试,不报错就是成功!恭喜你可以在Docker中使用GPU了!

【注意】:

  • 直接在docker中执行pip install tifffile不行,会显示连接不上网络
  • 查了原因是因为docker与宿主机的网络是隔离的,无法连接网络
  • 于是查到了使用离线安装的方式安装python依赖包
  • 首先通过如下命令下载好:pip download tifffile -d download_dir
  • 接着将whl文件copy到docker容器内进行安装 pip install xxx.whl

 

五、附(一些Docker的常用命令)

进入容器后退出

# 注:经过实际测试,exit并不能完全彻底的退出容器,在删除镜像时会显示之前的容器未关闭
$ exit

删除镜像

$ sudo docker image rm fa5b
# 如果显示被占用:
Error response from daemon: conflict: unable to delete fa5b91571a44 (must be forced) - image is being used by stopped container 0dcfd466295d
# 此时需要删除容器
$ sudo docker rm 0dc
# 之后就可以删除镜像,如果依旧被占用重复进行上述操作即可

拷贝文件到容器中

# 从电脑传容器命令就是 docker cp 要传输的文件 容器ID:/容器路径 (一般此时需要另开一个终端)
$ sudo docker cp test_env.py 942d67acd418:/workspace
# 将容器30026605dcfe的/home/cloudera/RS-MapReduce目录拷贝到主机的/tmp目录中
$ docker cp 30026605dcfe:/home/cloudera/RS-MapReduce /tmp/

容器更新后,将最新版本的容器保存为镜像

# -a 作者, -m 说明, 后面跟容器ID + 新镜像命名
$ docker commit -a "author" -m "introduction" abcdefg12345 lung:v1

将本地镜像保存为本地镜像文件及其读取方式

# 采用docker的save和load操作
$ docker save -o lung.tar lung:v1
$ docker load -i lung.tar

修改镜像名称,上传到hub的镜像需要保证镜像前缀名和用户名一致,此时需要修改镜像名称

# 使用docker tag的操作,后面跟上镜像id和需要修改的名字+版本
$ docker tag imageid name:tag

docker用户登录的命令如下

# 注意,docker的密码至少9位!!因此我自己是用PB学号作为密码的!!提醒自己不要忘记!!
$ docker login

在docker容器内安装python包/模块:

$ pip install xxxxx (-i 镜像源)

注:最近在docker容器内安装cv2的时候出现了大问题,一直显示cannot open shared object file,调研了许久,终于找到了解决方案(非常感谢大佬),现把链接贴在这里防止忘记:

https://blog.csdn.net/qq_35516745/article/details/103822597

 

其他的一些操作学习后不定期更新。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值