您的位置:澳门新葡萄京最大平台 > 最大平台 > 使用Docker部署IPython

使用Docker部署IPython

发布时间:2019-10-05 14:47编辑:最大平台浏览(69)

    图片 1

    docker

    本文的配置情状是Ubuntu 14.04

    • Docker

    Docker 详细概念能够去search,一句话来讲就是把利用打包到贰个器皿里的轻量级系统设想化服务

    • IPython Notebook

    IPython Notebook 既是三个相互计算平台,又是贰个记下计算进度的「笔记本」。它由服务端和顾客端两片段构成,在那之中服务端担任代码的解释与计量,而顾客端负担与客户进行互动。 服务端能够运转在本机也能够运作在长途服务器,包括担负运算的 IPython kernel (与 QT Console 的 kernel 同样) 以及一个 HTTP/S 服务器 (Tornado)。 而顾客端则是贰个针对服务端地址的浏览器页面,担当接受客户的输入并承担渲染输出。

    本文首要记录使用Docker 在服务器布置IPython Note 应用的历程。比古板的安插方案果然轻巧轻松不菲。

    知识点

    1. Docker 的基本概念
    2. 部署IPython 容器
    3. 行使Nginx 容器反向代理IPython

    Docker 的基本概念

    下文的操作首要涉及Docker的须臾间几个知识点:

    • Docker 的镜像(image)、容器(container)、仓库(registerie)
    • Docker 的安装
    • Docker 的功底用法
    • Docker的端口映射
    • Docker 数据卷
    • 链接容器

    详尽的消息方可自行检索

    部署IPython

    下载IPython 的镜像

    官方Docker镜像地址,里面含有5个镜像:

    • notebook
    • ipython
    • scipyserver
    • scipystack
    • nbvierer

    轻松说一下那多少个镜像的界别 ipython 是以上多少个镜像的一块儿的根镜像。notebook 提供了八个web的前端。scipystackipython的基础上设置了过多科学总计的包(cython,h5py,matplotlib,numpy,pandas,patsy,scikit-learn,scipy,seaborn,sympy,yt),而scipyserver则在scipystack的基本功上提供了web的前端。nbviewer则是nbviewer.ipython.org的实现
    越来越多详细新闻请到GitHub上的docker-notebook 查看
    选择scipystack镜像最便利,然则供给下载的事物也越来越多。下文选取的也是scipystack

    $ sudo docker pull ipython/scipyserver
    

    运行IPython 容器

    sudo docker run -d --name IPythonApp -p 8888:8888 -e "PASSWORD=your password" -e "USE_HTTP=1" -v /home/zhiyue/repos/ipython-notebook:/notebooks ipython/scipyserver
    

    深入分析一下参数-d 是今后台的法门运营,--name 是容器的小名,-p 是端口映射,-e 是设置情形变量,这里的遭遇变量PASSWORD设置成你本人的密码就足以了,USE_HTTP=1 意思是运用http,-v 是安装数据卷,把宿主机的目录挂载到容器里,即便容器被删去,数据也得以保存下去

    Nginx 反向代理 IPython

    有三种方法,一种是使用官方的Nginx,另一种是使用jwilder / nginx-proxy,后一种方法越发简明和有益

    方式1:nginx

    • 动用Nginx的官方镜像nginx

    • Nginx 配置文件
      ipython-server.conf

     map $http_upgrade $connection_upgrade {
            default upgrade;
            ''      close;
     }
    server{
            listen 80;
            server_name note.everforget.com;
            location / {
                    proxy_pass http://ipython:8888;
                    proxy_http_version 1.1;
                    proxy_set_header Upgrade $http_upgrade;
                    proxy_set_header Connection "upgrade";
                    proxy_set_header X-Real-IP $remote_addr;
                    proxy_set_header Host $host;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            }
    }
    

    那之中要留神一点是,ipython要选拔websock由此要布置websocket,从前在那几个主题素材查了长久。
    proxy_pass http://ipython:8888; ipython和后边容器连接时的小名有关。

    • 运行Nginx容器
    $ sudo docker run -d -p 80:80 --name nginx --link IPythonApp:ipython  -v `pwd`/config:/etc/nginx/conf.d  -v `pwd`/logs:/var/log/nginx nginx
    

    方式2:nginx-proxy

    • jwilder / nginx-proxy

    • 运行nginx-proxy 容器

    docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy
    
    • 运行ipython 容器
    sudo docker run -d -e "VIRTUAL_HOST=ipython.everforget.com" --name IPython -p 8888:8888 -e "PASSWORD=xxxxxx" -e "USE_HTTP=1" -v /home/zhiyue/repos/ipython-notebook:/notebooks ipython/scipyserver
    

    最后放一张图:

    图片 2

    如此就能够随时通过web来利用python了。

    参考

    • Docker 笔记 By 枯木

    • [Docker] 火速建构 IPython Notebook 環境

    • 在Docker下部署Nginx

    • IPython Notebook: 交互总计新时代


    更新日志:

    • 二〇一六-6-8 增多配图
    • 二〇一四-6-6 第三遍创作

    本文由澳门新葡萄京最大平台发布于最大平台,转载请注明出处:使用Docker部署IPython

    关键词:

上一篇:末日危途

下一篇:产品新人的第一份PRD