docker中安装anaconda+ jupyter(远程访问)+tensorflow

摘要:
找到inet后的IP地址即为docker地址。dockercommit****tensorflow1_13_1运行镜像并添加端口dockerrun-d-it-p8000:8888tensorflow1_13_1/bin/bash进入docker中,dockerexec-it*****bash启动jupyternotebook,jupyternotebook--allow-root,默认端口8888远程访问jupyter,浏览器中输入网址:主机IP+映射端口8000,即http://11.161.112.1:8000试得不成功,没理解inspect,过后再补http://www.yinxi.net/doc/show.php?DocID=107321、获得容器IP将container_name换成实际环境中的容器名dockerinspect`container_name`|grepIPAddress2、iptable转发端口将容器的8000端口映射到docker主机的8001端口复制代码代码如下:iptables-tnat-ADOCKER-ptcp--dport8001-jDNAT--to-destination172.17.0.19:8000三、安装tensorflow1、安装cuda和cudnnCUDA看作是一个工作台,上面配有很多工具,如锤子、螺丝刀等。
一、docker安装anaconda

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

注意版本:Anaconda2表示python2,Anaconda3表示python3。查看:https://blog.csdn.net/yuejisuo1948/article/details/81043823

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搜索你的显卡需要的驱动型号并下载(如图)。

docker中安装anaconda+ jupyter(远程访问)+tensorflow第1张

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

docker中安装anaconda+ jupyter(远程访问)+tensorflow第2张

要想安装440:sudo apt install nvidia-440

测试安装成功:输入nvidia-smi命令测试是否有结果

(3)安装cuda

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

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

docker中安装anaconda+ jupyter(远程访问)+tensorflow第3张

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

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

docker中安装anaconda+ jupyter(远程访问)+tensorflow第4张

根据命令安装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)中。

docker中安装anaconda+ jupyter(远程访问)+tensorflow第5张

docker中安装anaconda+ jupyter(远程访问)+tensorflow第6张

(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

免责声明:文章转载自《docker中安装anaconda+ jupyter(远程访问)+tensorflow》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇美化radio以及出现的情况探究 Redis 4 的 stream 类型下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

基于Centos 7 vue+nginx+docker 的前端项目部署

1.先在本地将vue项目建立,并且确定能跑起来使用npm run serve  ctrl+鼠标左键在本地查看。 然后使用npm run build,会在本地生成一个dist文件。  然后建一个文件Dockerfile,文件内容可以在VS Code里面先写好,或者在linux服务器上面编辑都可以。 然后需要一台服务器,我这里是用的公司内部的linux服务...

Ubuntu 搭建ELK

一、简介 官网地址:https://www.elastic.co/cn/ 官网权威指南:https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html 安装指南:https://www.elastic.co/guide/en/elasticsearch/reference/5.x...

docker创建一个容器

而容器技术的核心功能,就是通过约束和修改进程的动态表现,从而为其创造出一个“边界”。 对于 Docker 等大多数 Linux 容器来说,Cgroups 技术是用来制造约束的主要手段,而 Namespace 技术则是用来修改进程视图的主要方法。 你可能会觉得 Cgroups 和 Namespace 这两个概念很抽象, 别担心,接下来我们一起动手实践一下,你...

Mysql:主从集群配置

我这里是去网易蜂巢取得镜像:https://c.163yun.com/hub#/m/home/ 命令:docker pull hub.c.163.com/library/mysql:latest 拉取完之后查询镜像 命令:docker images 3.配置主从复制 (1)创建配置文件 目录:/usr/local/mysql/ 注意:目录你个人设定,这不...

superset docker 部署

公众号原文有更多效果图哦 一、使用自己的数据库 1. 拉取项目 // 创建目录用于存放项目 mkdir -p /mnt/superset cd /mnt/superset git clone https://github.com/amancevice/superset.git 2. 配置数据库等 这里默认你已创建了你自己的空数据库和具有读写该数据库权限的...

ipython notebook开通远程

之前只是会用,别人告诉我命令和大概怎么设置的,今天自己搭建才发现一知半解搞不定啊。 目的:远程通过ipython notebook调用服务器。 服务器是ubuntu16.04 本地机器win7 配置方案一: msys2 配置方案二: xshell 无论哪个方案,说白了,就是想远程使用服务器,当然最常用的就是ssh方式。因此都要首先把服务器的ssh功能开通,...