【环境配置】使用 docker 制作一个ubuntu16.04 + ROS + pytorch-gpu 的镜像

文章目录

使用 docker 制作一个ubuntu16.04 + ROS + pytorch-gpu 镜像的过程

1. 我的笔记本环境:

  1. lsb_release -a: Ubuntu 16.04.6 LTS xenial
  2. nvidia-smi : GeForce GTX 965M

2. 环境配置过程

2.1. 在 ubuntu 16.04 中安装 docker

参考链接(英文官网):https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-16-04

参考链接(中文翻译):https://www.runoob.com/docker/ubuntu-docker-install.html

2.2. 在docker 中安装 ubuntu 16.04 含 cuda9.0 和cudnn7(这里说的安装就是指 从dockerhub 上 pull 镜像,生成容器的过程)

直接从 dockerhub 官网上找到自己需要的版本 pull 下来;

dockerhub 官网链接:https://hub.docker.com/r/nvidia/cuda/tags?page=2&name=cudnn7

我这里使用的是 pull 下来的镜像 包含 ubuntu16.04 和 显卡驱动(cuda9.0+cudnn7)的版本, 具体该 pull 的 cuda 的什么版本是由自己的显卡决定的,英伟达官网可以查到不同显卡最高支持的cuda的版本 。

$ docker pull nvidia/cuda:9.0-cudnn7-devel-ubuntu16.04

2.3. 启动镜像

$ docker run -it [IMAGE ID 或者 REPOSITORY ]  /bin/bash
# 具体使用如下:(挂载方法是 “-v  本地目录:docker文件目录”    镜像名是 nvidia/cuda:9.0-cudnn7-devel-ubuntu16.04)
$ docker run -it -v /home/yzn/Downloads/share:/media  nvidia/cuda:9.0-cudnn7-devel-ubuntu16.04 /bin/bash 

以命令行模式进入该容器,然后就可以在这个容器里面安装自己需要的软件了

ctrl + D 可以退出容器, 容器停止工作
再次进入容器 ,需要先 start 容器,再进入容器:

$ docker start [容器的ID]  # 启动 stop 的容器
$ docker exec -it [容器的ID] /bin/bash  # 进入 start 的容器

2.4. 在容器中安装自己需要的软件

我这主要安装了

  1. anaconda
  2. pytorch
  3. opencv
  4. ros
2.4.1 安装 anaconda

anaconda 官网下载 安装文件:**.sh 文件

$ bash **.sh  #  .sh 文件的安装方法

提示:因为在容器中不方便下载,这个安装文件。所以我采用在本地ubuntu上下载,然通过挂载 本地文件到容器的方法,实现在容器中访问本地ubuntu下载的文件。挂载时,需要在 docker run 生成容器的命令中挂载。

2.4.2 安装 pytorch
$ conda install pytorch==1.1.0 torchvision==0.3.0 cudatoolkit=9.0 -c pytorch

安装速度比较慢的话,建议修改为 阿里源,修改前一定要备份

2.4.3 安装 opencv
$ pip instll opencv-python #  建议使用
或
$ conda install -c conda-forge opencv  #  不建议 经常不成功
2.4.4 安装 ros

参见链接:https://blog.csdn.net/weixin_42419002/article/details/103157489

安装过程中会出现 lsb_release 不存的问题,谷歌一下就能解决。

下面记录安装过程中的部分异常,及解决方案:
2.4.5 解决不能 import rospkg 的问题

参见链接:https://blog.csdn.net/weixin_42419002/article/details/103157489

2.4.6 docker 中不能使用显卡的原因:启动镜像时需要进行显卡设置。

如果在 启动镜像生成容器的过程中没有 设置 --runtime=nvidia 或者 --gpus all 的话,docker 中是无法使用 cuda/显卡 的。

测试在容器中是否能使用显卡的方法:

方法一: torch.cuda.is_available()

root@2c4635c3c3cd:/# python 
Python 2.7.16 |Anaconda, Inc.| (default, Sep 24 2019, 21:51:30) 
[GCC 7.3.0
  • 6
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值