一、docker安装anaconda

1、到anaconda清华镜像网站下载:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/

注意版本:Anaconda2表示python2,Anaconda3表示python3。

2、如下载的是Anaconda3-5.3.0-Linux-x86_64.sh,则安装的命令是 sh Anaconda3-5.3.0-Linux-x86_64.sh

3、更新环境变量

# source ~/.bashrc

# conda -V

4、安装相关包:conda install 包名

如安装jupyter notebook,详细看一; conda install jupyter notebook

启动:jupyter notebook

5、创建tensorflow环境:

  • conda create -n tf1.13.1-py3.6 python=3.6激活环境:source activate tf1.4-py3.6  查看conda有哪些环境:conda info -e 

二、安装jupyter

进入docker交互式环境:docker exec -it ***** bash

安装jupyter:

  • 安装python dev包 :  apt-get install python-dev
  • 安装jupyter :  pip install jupyter [若pip没安装好,需要安装sudo apt install python3-pip]

配置文件:

  • 生成jupyter配置文件:jupyter notebook --generate-config
  • 使用ipython生成密码 

In [1]: from notebook.auth import passwd

In [2]: passwd()

Enter password:

Verify password:

Out[2]: 'sha1:******'

  • 到配置文件/root/.jupyter/jupyter_notebook_config.py中修改以下参数

c.NotebookApp.ip='*'                          #绑定所有地址,即所有IP 地址都可以访问
c.NotebookApp.password = u'sha1:******'
c.NotebookApp.open_browser = False            #启动后是否在浏览器中自动打开
c.NotebookApp.port =8100                      #指定一个访问端口8100,默认8888

c.NotebookApp.allow_remote = True     #将远程访问设置成True

 

启动:

jupyter notebook --allow-root

 

本机访问:

  • 查看docker IP,需安装  apt install net-tools ,然后输入命令ifconfig -a。

找到inet后的IP地址即为docker地址。如:inet  153.16.0.1

  • 远程访问:http://153.16.0.1:8100即可。8100为配置文件时修改的启动端口,若有密码,即token=  后面输入密码。/

 远程访问:

在启动容器时,如果不配置宿主机器与虚拟机的端口映射,外部程序是无法访问虚拟机的,因为没有端口。

1、若没有启动容器时,即docker run -it ***,则可以通过以下命令指定容器8888端口映射成主机端口8000。-p 后面接主机端口:容器端口,-d表示后台执行,-it是进入交互式。

  docker run -d -it -p 8000:8888 tensorlow_gpu:latest /bin/bash

  【然后通过docker ps可以查看映射成功】

2、若容器已经执行了,即docker ps -a是存在的容器可以通过以下两种方式:本人只成功了第一种:

(1)

  • 提交一个运行中的容器为镜像,先查询该容器的ID *****,通过docker ps -a查询,以下tensorflow1_13_1是自己取的新容器名字。

 

docker commit ****(containerid) tensorflow1_13_1
  • 运行镜像并添加端口
docker run -d -it -p 8000:8888 tensorflow1_13_1 /bin/bash
  • 进入docker 中,docker exec -it *****(新容器ID,docker ps -a查询) bash
  • 启动jupyter notebook,jupyter notebook --allow-root,默认端口8888
  • 远程访问jupyter,浏览器中输入网址:主机IP+映射端口8000,即http://11.161.112.1:8000

(2)试得不成功,没理解inspect ,过后再补

http://www.yinxi.net/doc/show.php?DocID=10732

1、获得容器IP

将container_name 换成实际环境中的容器名

docker inspect `container_name` | grep IPAddress

2、 iptable转发端口

将容器的8000端口映射到docker主机的8001端口

复制代码 代码如下:
iptables -t nat -A  DOCKER -p tcp --dport 8001 -j DNAT --to-destination 172.17.0.19:8000

三、安装tensorflow

1、安装cuda和cudnn

CUDA看作是一个工作台,上面配有很多工具,如锤子、螺丝刀等。cuDNN是基于CUDA的深度学习GPU加速库,有了它才能在GPU上完成深度学习的计算。它就相当于工作的工具,比如它就是个扳手。但是CUDA这个工作台买来的时候,并没有送扳手。想要在CUDA上运行深度神经网络,就要安装cuDNN,就像你想要拧个螺帽就要把扳手买回来。这样才能使GPU进行深度神经网络的工作,工作速度相较CPU快很多。

链接:https://www.jianshu.com/p/622f47f94784

只要把cuDNN文件复制到CUDA的对应文件夹里就可以,即是所谓插入式设计,把cuDNN数据库添加CUDA里,cuDNN是CUDA的扩展计算库,不会对CUDA造成其他影响。

(1)注意显卡型号:

输入命令lshw -c video,查看显卡型号driver version。找到对应的cuda版本下载。

看到以下这些结果表明支持nvidia以及显卡类型为GP102 [TITAN Xp]

product: GP102 [TITAN Xp]

vendor: NVIDIA Corporation

(2)安装显卡驱动

去NVDIA driver search page搜索你的显卡需要的驱动型号并下载(如图)。

Alpinean安装docker docker安装anaconda_docker

 

或者输入命令查询可用 驱动版本:ubuntu-drivers devices

Alpinean安装docker docker安装anaconda_CUDA_02

要想安装440:sudo apt install nvidia-440测试安装成功:输入nvidia-smi命令测试是否有结果

(3)安装cuda

如果训练中用到了 tensorflow,应该确认一下 cuda 版本与 tensorflow 版本的兼容性问题

https://tensorflow.google.cn/install/source#linux

Alpinean安装docker docker安装anaconda_Alpinean安装docker_03

 

确定安装cuda10.0+cudnn7.4+tensorflow1.13.1

cuda下载地址:https://developer.nvidia.com/cuda-toolkit-archive

Alpinean安装docker docker安装anaconda_docker_04

 

 根据命令安装cuda

(4)安装cudnn

https://developer.nvidia.com/rdp/cudnn-archive

下载对应版本的tgz文件Download cuDNN v7.4.2 (Dec 14, 2018), for CUDA 10.0,然后解压 tar xfz cuDNN v7.4.2 (Dec 14, 2018), for CUDA 10.0.tgz.

将解压出来的文件夹中的include文件夹和lib64文件夹内容全部复制到已经安装的cuda相对应的文件夹(一般在/usr/local/cuda-10.0)中。

Alpinean安装docker docker安装anaconda_tensorflow_05

 

Alpinean安装docker docker安装anaconda_Alpinean安装docker_06

 

 

 (5)安装tensorflow1.13.1

如果直接输入pip install tensorflow-gpu=1.13.1,下载速度及其慢。

可以换源:python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-gpu==1.13.1