必须要说容器是一个很牛逼的思想!注意,是思想!也许docker有种种问题,但是不管docker能否茁壮地发展下去,未来这种方式的环境搭建一定会变得越来越流行!

网上有很多这方面的教程,但大多数都不太好。。。。初学者很难上手看的一脸懵逼,而且很多自己都根本没验证过行不行,而且很多问题都没有提到!!因此我自己写一个这方面的教程,以后自己看起来方便,有缘的docker新手看到这篇文章也许能给你一些帮助。


首先是安装docker

我们在centos7上安装docker-ce,也就是社区版。这篇博客里面有centos和ubuntu的安装方式:https://www.linuxidc.com/Linux/2017-12/149576.htm

我在这里再说一遍我的安装过程,注意!如果是root用户连接服务器在做这样的操作,那就不用加sudo了,加了也不识别。。。另外如果需要选择特定的docker版本也可以在那个博客里找到,但我个人觉得没啥必要,装最新版的就好了呗,有问题了再说hhhhh

// 1. 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
// 2. 添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
// 3. 更新并安装 Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
// 4. 开启Docker服务
sudo service docker start
// 5. 设置开机启动
sudo systemctl docker enable

如果你要装tensorflow-gpu,那么还要装个nvidia-docker2

这个参考nvidia的github就行,为什么我非要下docker-ce版的呢,因为我用docker按照github的方法来做貌似没成功。。。也没深究。网址:https://github.com/NVIDIA/nvidia-docker

一定要注意选择docker-ce那个版本。我这里也写一下。

# 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 yum remove nvidia-docker
# Add the package repositories
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | \
sudo tee /etc/yum.repos.d/nvidia-docker.repo
# Install nvidia-docker2 and reload the Docker daemon configuration
sudo yum install -y nvidia-docker2
sudo pkill -SIGHUP dockerd
# Test nvidia-smi with the latest official CUDA image
docker run --runtime=nvidia --rm nvidia/cuda:9.0-base nvidia-smi

安装nvidia驱动(如果你要用tf-gpu)

前面你会发现安装好了之后,docker run –runtime=nvidia –rm nvidia/cuda:9.0-base nvidia-smi这句话没用,那是因为没装nvidia驱动,安装nvidia驱动方法我这里就不说了,比较简单,装好了之后本机上可以nvidia-smi查看显卡使用情况。

下载tensorflow镜像

这里直接看官网https://tensorflow.google.cn/install/docker

有个问题啊。tensorflow/tensorflow:latest或者tensorflow/tensorflow:latest-gpu都是python2.7版本的环境!!!!我们都新时代的人了,用python3吧,不然在中文集上你会很烦的!!https://hub.docker.com/r/tensorflow/tensorflow/tags/这个网站上给出了一些镜像的名称。其实很简单在名字后面加个-py3就行了,就能把python3的环境拉下来了。

启动镜像

我用一个例子来说明吧:

docker run --runtime=nvidia -t -v /home/xxx/docker/tf:/root/tf --name tf_py3 \
tensorflow/tensoflow:latest-py3 bash

–runtime=nvidia 是nvidia-docker2的特点

-v 数据卷  冒号前面是本机目录,冒号后面是docker内目录,目录内文件共享

–name 容器名字,下次可以用名字打开,不用记住那个麻烦的序列

tensorflow/tensoflow:latest-py3  对应镜像,如果要用gpu版的,加个-gpu

bash  说明进入命令行界面!!!这个真的是要划重点了,网上很多centos7搭docker教程都是说,给一个序列,我在浏览器里输什么什么什么,我特么centos7没有图形界面啊!!!!!!!我不知道centos7是不是能用浏览器,貌似也是可以的,但我没有深究这个问题,反正就是很麻烦啊!什么鬼啊!!!加个bash就好了啊!

好了,这样就可以了,开心。

重新启动一个容器,以及字符集问题

每次退出容易用exit。然后docker ps -a 可以看到所有的容器。

输入命令 docker start xxxx

docker attach xxxx

就又进入了。

这里会遇到一个字符集问题!就是不能输入中文也不能识别中文!

输入locale -a 可以查看所有的字符集,发现是有C.UTF-8的。但是输入locale回车,发现LANG是空!就是不能用中文!咋办呢!

我现在有一个解决办法,就是每次启动容器的时候用这句话!

docker start xxxx

docker exec -it xxxx env LANG=C.UTF-8 bash

emmmm不是一个长久的办法!这样修改只是临时修改。要永久修改,需要在创建容器时在dockerfile中设置。但是要重新创建容器啊。。我都在容器里配了一些东西了。。有点烦,先不弄了,留着下次看看!

——–TODO!

就先这样解决问题了,docker还是挺牛逼的!

参考:

https://www.linuxidc.com/Linux/2017-12/149576.htm

https://m.linuxidc.com/Linux/2017-12/149578.htm

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

https://tensorflow.google.cn/install/docker

centos + docker搭建深度学习环境以及一些问题解决的更多相关文章

  1. 基于Ubuntu+Python+Tensorflow+Jupyter notebook搭建深度学习环境

    基于Ubuntu+Python+Tensorflow+Jupyter notebook搭建深度学习环境 前言一.环境准备环境介绍软件下载VMware下安装UbuntuUbuntu下Anaconda的安 ...

  2. 教你如何用Docker快速搭建深度学习环境

    本教程搭建集 Tensorflow.Keras.Coffe.PyTorch 等深度学习框架于一身的环境,及jupyter. 本教程使用nvidia-docker启动实例,通过本教程可以从一个全新的Ub ...

  3. ubuntu18.04下搭建深度学习环境anaconda2+ cuda9.0+cudnn7.0.5+tensorflow1.7【原创】【学习笔记】

    PC:ubuntu18.04.i5.七彩虹GTX1060显卡.固态硬盘.机械硬盘 作者:庄泽彬(欢迎转载,请注明作者) 说明:记录在ubuntu18.04环境下搭建深度学习的环境,之前安装了cuda9 ...

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

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

  5. centos7 手把手从零搭建深度学习环境 (以TensorFlow2.0为例)

    目录 一. 搭建一套自己的深度学习平台 二. 安装系统 三. 安装NVIDA组件 四. 安装深度学习框架 TensorFlow 五. 配置远程访问 六. 验收 七. 福利(救命稻草

  6. ubuntu 17.04 下搭建深度学习环境

    .目前使用CPU即可,先不需要显卡配置 .使用pip3 安装深度学习框架 .要先安装pip3 #sudo apt install python3-pip https://blog.csdn.net/b ...

  7. 在服务器的docker里 装anacond3深度学习环境的全流程超基础

    ​ 背景: 实验室给我分配了一个服务器 已经装好了docker 和nvidi docker . 现在我的目标是创建我自己的docker 然后在我自己的docker里装上anaconda环境. 我以前从 ...

  8. linux系统下深度学习环境搭建和使用

    作为一个AI工程师,对Linux的一些技能的掌握也能从一定层面反应工程师的资深水平. 要求1:基于SSH的远程访问(本篇文章) 能用一台笔记本电脑,远程登陆一台linux服务器 能随时使用笔记本电脑启 ...

  9. 服务器搭建远程docker深度学习环境

    服务器搭建远程docker深度学习环境 本文大部分内容参考知乎文章 Docker+PyCharm快速搭建机器学习开发环境 搭建过程中出现ssh连接问题可以查看最后的注意事项 Docker Docker ...

随机推荐

  1. selenium3+Python3+sublime text3自动化登录

    前言: 对于初学者来说,python自带的IDLE,精简又方便,不过一个好的编辑器能让python编码变得更方便,更加优美些. 不过呢,也可以自己去下载其他更好用的代码编辑器,在这推荐: PyChar ...

  2. 关于mathtype6.9在office2010中出现The MathType can not be found的问题

    本文问题解决方法参考:https://blog.csdn.net/yiran103/article/details/41694843 自从重装了系统,安装mathtype总是提示The MathTyp ...

  3. CSS 常用效果--持续更新

    单行超出省略: white-space: nowrap; text-overflow:ellipsis; overflow:hidden; 多行超出省略: text-overflow: -o-elli ...

  4. idea删除工作记录

    或者

  5. mysql You can't specify target table for update in FROM clause解决方法

    mysql You can't specify target table for update in FROM clause解决方法出现这个错误的原因是不能在同一个sql语句中,先select同一个表 ...

  6. R镜像源的切换

    如果是默认的R安装一般会很慢 install.packages(pkgs, lib, repos = getOption("repos"), contriburl = contri ...

  7. Python/C++ in Visual Studio: An Alternative to Matlab/MEX

    来自Andrew Delong的博客 http://andrewdelong.wordpress.com/2012/11/03/pythonc-in-visual-studio-an-alternat ...

  8. hugepage设置

    1.设置memlock 编辑/etc/security/limits.conf 增加: * Soft memlock 稍小于RAM值 * hard memlock 稍小于RAM值 Memlock,锁定 ...

  9. sendmail邮箱部署设置

    前言:在使用一些shell脚本进行监控时需要通过发送报警邮件来提醒,下面通过部署简单的sendmail来实现简单的邮件发送. 1.安装 mailx 和 sendmail: yum install ma ...

  10. java对日开发常用语(词汇)总结

    日语 英语 中文 备注 並び順(ならびじゅん) order by 排序   項目(こうもく)                         field 字段,域                    ...