说明

由于官方镜像实在是不怎么好用,所以我自己做了一个优化过的jupyter notebook的镜像 notebook_hub,使用我这个镜像搭建容器非常简单,下面就基于这个notebook_hub来进行搭建。

关于notebook_hub

这个是我自己自己基于Ubuntu镜像制作的jupyter notebook的镜像。

我自己做了以下优化:

  • 优化终端对中文字体的显示。
  • 优化jupyter notebook的UI显示。
  • 优化jupyter notebook对中文的支持。
  • 优化了jupyter notebook的字体的显示。
  • 优化了部分包对中文字体的显示乱码问题。
  • 为jupyter notebook添加了Nbextensions功能增强插件。
  • 为jupyter notebook整合了python3和R的内核支持。
  • 为jupyterlab添加 git github jupyterlab-lsp jupyterlab-drawio 等插件。

项目地址 https://github.com/brokyz/notebook_hub

Docker地址 https://hub.docker.com/r/brokyz/notebook_hub

搭建步骤

  1. 拉取镜像
# 需要jupyterlab自带python和R的使用这个镜像
docker pull brokyz/notebook_hub # 需要jupyter notebook自带python和R的使用这个镜像
docker pull brokyz/notebook_hub:stable_v1 # 只需要带有python的jupyterlab使用这个镜像
docker pull brokyz/notebook_py # 只需要带有pythom的jupyter notebook使用这个镜像
docker pull brokyz/notebook_py:stable_v1
  1. 搭建容器
# 将下面的的name和使用的镜像改为自己上一步拉取的镜像版本。
docker run -d -p 8888:8888 --name notebook_hub --restart always brokyz/notebook:hub

-p 8888:8888 为指定端口号外部端口为8889 容器内部端口为8888,根据自己的需要自行修改外部端口。比如在服务器上安装了宝塔面板8888端口被占用,那么只需要改成8889:8888即可,之后便会通过ip:8889端口进行访问。

  1. 获取登录token
# 使用命令查看日志中的token并复制 这里需要使用构建容器时指定的name
docker logs notebook_hub # 结果如下,复制token为 1294c0bfc1513e9f2250df2ad52d40eb40b1ab678341e563
--------------------------------------------------------------------------------------------------------------------------------------------------
To access the notebook, open this file in a browser:
file:///root/.local/share/jupyter/runtime/nbserver-8-open.html
Or copy and paste one of these URLs:
http://b1c5c1eb1901:8888/?token=1294c0bfc1513e9f2250df2ad52d40eb40b1ab678341e563
or http://127.0.0.1:8888/?token=1294c0bfc1513e9f2250df2ad52d40eb40b1ab678341e563
  1. 网页访问

在浏览器输入 ip:端口号 进行访问,比如我这里 就是输入 ip:8888,如果在第2步修改成-p 8889:8888的话,那么就是通过ip:8889进行访问。

在进入的网页的下面粘贴自己的token和设置自己的访问密码。访问密码需要重启容器后才有效。

  1. 重启容器
# 重启容器使密码生效 这里需要使用构建容器时指定的name
docker restart notebook_hub

使用docker搭建jupyter notebook / jupyterlab的更多相关文章

  1. Docker 安装jupyter notebook

    1. 利用image运行一个container sudo docker run -it --net=host tingting --net=host:让container可以上网,安装原来的sudo ...

  2. 搭建Jupyter Notebook服务器

    昨天发了Jupyter的使用,补一篇Jupyter服务器的搭建~ 一.搭建Jupyter 1.安装 使用virtualenv建虚拟环境.在虚拟环境中安装jupyter.matplotlib等等需要的库 ...

  3. 使用centos linux vps搭建jupyter notebook踩坑日记

    今天我尝试用vps搭建在线jupyter notebook网站时遇到了这样一个问题: [W 21:48:07.243 NotebookApp] SSL Error on 9 ('171.115.101 ...

  4. Python - 搭建Jupyter notebook环境

    1- Jupyter简介 HomePage:https://jupyter.org/ 安装指南:https://jupyter.org/install.html 官方文档:https://jupyte ...

  5. 在服务器搭建Jupyter notebook

    安装 Jupyter Notebook (这里虽然是对centos和Python2的,但是在Ubuntu16.04,Python3同样可以照着弄) Jupyter Notebook 简介 Jupyte ...

  6. vps上搭建jupyter notebook远程服务

    安装anaconda 使用如下命令下载: wget https://repo.continuum.io/archive/Anaconda3-5.0.0.1-Linux-x86_64.sh 如果非roo ...

  7. 在树莓派上搭建jupyter notebook server

    自从搬家后,树莓派闲置了好一段时间,最近打算将其利用起来.想来想去,搭个jupyter notebook用要靠谱的,毕竟经常要实验一些Python脚本. 具体过程参考以下链接: https://www ...

  8. 【机器学习 Azure Machine Learning】使用Aure虚拟机搭建Jupyter notebook环境,为Machine Learning做准备(Ubuntu 18.04,Linux)

    问题描述 在Azure的VM中已经安装好Jupyter,并且通过jupyter notebook --port 9999 已经启动,但是通过本机浏览器,访问VM的公网IP,则始终是不能访问的错误.(T ...

  9. 服务器上搭建jupyter notebook

    参考:https://zhuanlan.zhihu.com/p/44405596 https://blog.csdn.net/cvMat/article/details/79351420 遇到的问题 ...

随机推荐

  1. Android Studio 异常以及解决方案

    1. Error:(1, 0) Plugin is too old, please update to a more recent version, or set ANDROID_DAILY_OVER ...

  2. 【MarkDown】使用

    1. 插入代码 在代码前后加上三个点样式的标识符: ``` 效果: 我是代码 1-1 换行 &符号加上 "ensp;"   2. 标题样式定制 # 一级标题 ## 二级标题 ...

  3. nginx之配置文件公用抽取

    nginx之配置文件公用抽取 因为某些原因,需要同时部署同一应用两个不同分支的代码,而配置文件存在较大重复,因此有此篇. 最近构建的过程中遇到了一些跟nginx配置相关的问题,记录下. 简单说下构建的 ...

  4. FastAPI(七十)实战开发《在线课程学习系统》接口开发--留言功能开发

    在之前的文章:FastAPI(六十九)实战开发<在线课程学习系统>接口开发--修改密码,这次分享留言功能开发 我们能梳理下对应的逻辑 1.校验用户是否登录 2.校验留言的用户是否存在 3. ...

  5. 接口和抽象类的区别(不讲废话,干货满满,JDK1.8最新整理)

    接口和抽象类的区别(不讲废话,干货满满,JDK1.8最新整理) 1.抽象类 以下说辞可能不太准确,但是会让你醍醐灌顶 抽象类是把一些具有共同属性(包括行为)的东西抽象出来,比如: 小狗有身高,体重,颜 ...

  6. Win下GCC报错 error: ‘for’ loop initial declarations are only allowed in C99 mode

    ##报错## 用GCC编译for循环会出现以下错误 error: 'for' loop initial declarations are only allowed in C99 mode 如图所示: ...

  7. 动手动脑3&课堂作业(四则运算与继承)

    先上结果 Java程序会先把所有的静态模块提取出来优先执行 四则运算主程序代码 1 import java.util.Scanner; 2 3 4 public class main { 5 publ ...

  8. 将mysql主从复制由ABB模式修改为ABC模式

    最近遇到一个奇葩的需求,需要将mysql的主从复制模式由ABB修改为ABC,恰好这个mysql集群没有开启GTID,当时是在B上做了一次全量备份,然后使用该全量备份恢复C的方式进行的.做完之后在想有没 ...

  9. Java语言学习day26--7月01日

    ###14内部类 * A: 内部类的概述 将类写在其他类的内部,可以写在其他类的成员位置和局部位置,这时写在其他类内部的类就称为内部类. 其他类也称为外部类. * B: 什么时候使用内部类 在描述事物 ...

  10. python基础练习题(题目 阶乘求和)

    day17 --------------------------------------------------------------- 实例025: 阶乘求和 题目 求1+2!+3!+-+20!的 ...