<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Jupyterhub on 静静的安全笔记</title><link>https://ruajingjing.top/tags/jupyterhub/</link><description>Recent content in Jupyterhub on 静静的安全笔记</description><generator>Hugo -- gohugo.io</generator><language>zh-CN</language><lastBuildDate>Thu, 13 Feb 2020 16:43:59 +0000</lastBuildDate><atom:link href="https://ruajingjing.top/tags/jupyterhub/index.xml" rel="self" type="application/rss+xml"/><item><title>jupyterLab安装配置教程</title><link>https://ruajingjing.top/post/jupyterlab%E5%AE%89%E8%A3%85%E9%85%8D%E7%BD%AE%E6%95%99%E7%A8%8B/</link><pubDate>Thu, 13 Feb 2020 16:43:59 +0000</pubDate><guid>https://ruajingjing.top/post/jupyterlab%E5%AE%89%E8%A3%85%E9%85%8D%E7%BD%AE%E6%95%99%E7%A8%8B/</guid><description>&lt;img src="https://ruajingjing.top/" alt="Featured image of post jupyterLab安装配置教程" /&gt;&lt;p&gt;服务器信息：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;Distributor ID: Ubuntu
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;Description: Ubuntu 18.04 LTS
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;Release: 18.04
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;Codename: bionic
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="准备工作"&gt;准备工作
&lt;/h2&gt;&lt;h3 id="更新服务器软件列表"&gt;更新服务器软件列表
&lt;/h3&gt;&lt;p&gt;首先，更新下列表，装一下依赖&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;sudo apt-get update
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;sudo apt-get upgrade
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;sudo apt-get -y install git gcc g++ make openssl libssl-dev libbz2-dev libreadline-dev libsqlite3-dev python-dev libmysqlclient-dev
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="安装docker"&gt;安装Docker
&lt;/h3&gt;&lt;p&gt;参考&lt;a class="link" href="https://blog.bugatii100peagle.cn/2020/02/13/Docker%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4%E6%80%BB%E7%BB%93/" target="_blank" rel="noopener"
 &gt;Docker常用命令总结&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="安装jupyterlab"&gt;安装JupyterLab
&lt;/h3&gt;&lt;p&gt;下面是我自己用registry搭建的仓库，已经有一个安装好C内核与Grads的jupyterLab，你可以用官网的jupyterlab。搭建私有仓库的方法参考：&lt;a class="link" href="https://developer.aliyun.com/article/66478" target="_blank" rel="noopener"
 &gt;搭建私有docker仓库并使用OSS作为存储&lt;/a&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;docker pull registry
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;docker run -d -p 443:5000 --restart&lt;span class="o"&gt;=&lt;/span&gt;always --name registry &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt; -v &lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="nb"&gt;pwd&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;/config:/config &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt; -e &lt;span class="s2"&gt;&amp;#34;REGISTRY_AUTH=htpasswd&amp;#34;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt; -e &lt;span class="s2"&gt;&amp;#34;REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm&amp;#34;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt; -e &lt;span class="nv"&gt;REGISTRY_AUTH_HTPASSWD_PATH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/config/htpasswd &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt; -e &lt;span class="nv"&gt;REGISTRY_HTTP_TLS_CERTIFICATE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/config/chained.pem &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt; -e &lt;span class="nv"&gt;REGISTRY_HTTP_TLS_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/config/domain.key &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt; -e &lt;span class="nv"&gt;REGISTRY_STORAGE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;oss &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt; -e &lt;span class="nv"&gt;REGISTRY_STORAGE_OSS_ACCESSKEYID&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;********** &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;11&lt;/span&gt;&lt;span class="cl"&gt; -e &lt;span class="nv"&gt;REGISTRY_STORAGE_OSS_ACCESSKEYSECRET&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;***************** &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;12&lt;/span&gt;&lt;span class="cl"&gt; -e &lt;span class="nv"&gt;REGISTRY_STORAGE_OSS_REGION&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;oss-cn-qingdao &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;13&lt;/span&gt;&lt;span class="cl"&gt; -e &lt;span class="nv"&gt;REGISTRY_STORAGE_OSS_BUCKET&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;******* &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;14&lt;/span&gt;&lt;span class="cl"&gt; registry:2
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;拉取jupyter镜像，这里我使用的&lt;code&gt;jupytercgrads&lt;/code&gt;是我自己自建仓库的带C内核和Grads内核的，以后搞个&lt;a class="link" href="https://blog.csdn.net/aixiaoyang168/article/details/73549898" target="_blank" rel="noopener"
 &gt;Docker镜像仓库Harbor之搭建及配置&lt;/a&gt;，然后我把镜像传上来吧。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;docker pull 127.0.0.1:5000/jupytercgrads
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;mkdir jupyterlabjupyterlab
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;docker run --name jupyter -d -p 8000:8888 --restart&lt;span class="o"&gt;=&lt;/span&gt;always -v &lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="nb"&gt;pwd&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;/jupyterlab/workspace:/workspace -w /workspace -e &lt;span class="nv"&gt;GRANT_SUDO&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;yes --user root 127.0.0.1:5000/jupytercgrads jupyter-lab --no-browser --port&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;8888&lt;/span&gt; --ip&lt;span class="o"&gt;=&lt;/span&gt;0.0.0.0 --allow-root 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;【 2020-02-17 12:58:00 更新】
我把镜像上传到阿里云仓库了，可以通过一下代码拉取。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;docker pull registry.cn-shanghai.aliyuncs.com/bugatii100peagle/jupytercgrads
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="配置登录密码"&gt;配置登录密码
&lt;/h3&gt;&lt;p&gt;进入Docker镜像中，启动&lt;code&gt;Ipython&lt;/code&gt;交互端&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;docker &lt;span class="nb"&gt;exec&lt;/span&gt; -it jupyter bash
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;ipython
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;输入&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;notebook.auth&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;passwd&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;passwd&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;会要求你输入密码，不会显示，输两遍就行&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;Enter password:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;Verify password:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;Out&lt;span class="o"&gt;[&lt;/span&gt;3&lt;span class="o"&gt;]&lt;/span&gt;: &lt;span class="s1"&gt;&amp;#39;sha1:记下这串数字&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;新建配置文件&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;jupyter lab --generate-config
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;或者在已有的配置文件&lt;code&gt;/home/jovyan/.jupyter/jupyter_notebook_config.py&lt;/code&gt;中添加&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;NotebookApp&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ip&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;*&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;NotebookApp&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;password&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;sha1:刚刚那串串数字&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;NotebookApp&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;allow_remote_access&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;保存，退出镜像，重启镜像&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;docker restart jupyter
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;打开浏览器，输入&lt;code&gt;http://IP:8000&lt;/code&gt;就能看到下图输密码，而不是输Token，这样只要用密码登录就行了。&lt;/p&gt;
&lt;p&gt;&lt;img alt="Snipaste_2020-02-16_00-12-30.png" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2020/02/16/22e0729ced66d.png"&gt;&lt;/p&gt;
&lt;h3 id="多用户配置"&gt;多用户配置
&lt;/h3&gt;
 &lt;blockquote&gt;
 &lt;p&gt;配置jupyterlab的参考&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;&lt;a class="link" href="https://blog.csdn.net/JJwho/article/details/75102045" target="_blank" rel="noopener"
 &gt;如何用一台服务器给多个 Jupyter 用户提供服务&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://www.cnblogs.com/ratels/p/11387740.html" target="_blank" rel="noopener"
 &gt;JupyterLab远程访问配置方法（CentOS7）&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://blog.csdn.net/ds19991999/article/details/83663349" target="_blank" rel="noopener"
 &gt;云服务器搭建神器JupyterLab（多图）&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;docker stop jupyter
&lt;a class="link" href="https://qiita.com/ao_log/items/5438f2aaf5c2b46d2ccb" target="_blank" rel="noopener"
 &gt;Docker で JupyterLab を起動し、token 入力なしでアクセスする&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://zhuanlan.zhihu.com/p/82025119" target="_blank" rel="noopener"
 &gt;jupyter notebook 安装 C/C++ kernel&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://www.jianshu.com/p/03324450c9e8" target="_blank" rel="noopener"
 &gt;jupyter-kernel&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://lyric.im/c/the-craft-of-selfteaching/T-appendix.jupyter-installation-and-setup" target="_blank" rel="noopener"
 &gt;Jupyterlab 的安装与配置&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://github.com/jupyter/docker-stacks/issues/949" target="_blank" rel="noopener"
 &gt;What is the password for using &amp;ldquo;sudo apt-get install&amp;rdquo; command? #949&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://github.com/jupyterlab/jupyterlab-latex" target="_blank" rel="noopener"
 &gt; jupyterlab /jupyterlab-latex &lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://zhuanlan.zhihu.com/p/67959768" target="_blank" rel="noopener"
 &gt;利器|JupyterLab 数据分析必备IDE完全指南&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://github.com/ykatsu111/jupyter-grads-kernel" target="_blank" rel="noopener"
 &gt; ykatsu111 /jupyter-grads-kernel &lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://github.com/brendan-rius/jupyter-c-kernel" target="_blank" rel="noopener"
 &gt; brendan-rius /jupyter-c-kernel &lt;/a&gt;&lt;/p&gt;
&lt;h2 id="jupyterhub安装"&gt;Jupyterhub安装
&lt;/h2&gt;&lt;p&gt;其实安装JupyterLab已经够个人使用了，如果要多用户管理可以试试JupyterHub。但是我除了用Docker安装成功外，另外用pip和conda都安装失败了。
参考&lt;a class="link" href="https://www.cnblogs.com/xieldy/p/11664476.html" target="_blank" rel="noopener"
 &gt; 实验室工作站jupyterhub安装笔记&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="docker安装jupyterhub"&gt;Docker安装JupyterHub
&lt;/h3&gt;&lt;p&gt;&lt;a class="link" href="https://jupyterhub.readthedocs.io/en/stable/quickstart-docker.html#alternate-installation-using-docker" target="_blank" rel="noopener"
 &gt;Using Docker&lt;/a&gt;，&lt;a class="link" href="https://blog.51cto.com/536410/2333974" target="_blank" rel="noopener"
 &gt;docker 安装jupyterhub支持R语言&lt;/a&gt;中看起来也不难，没有烦人的配置。&lt;/p&gt;
&lt;p&gt;下载好后让它跑起来，然后进入镜像。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;docker run -p 8000:8000 -d --name jupyterhub --restart&lt;span class="o"&gt;=&lt;/span&gt;always jupyterhub/jupyterhub
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;docker &lt;span class="nb"&gt;exec&lt;/span&gt; -it jupyterhub bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;带路径文件的启动，首先在宿主机上新建文件夹&lt;code&gt;/root/jupyterhub/jupyterhub/&lt;/code&gt;和&lt;code&gt;/root/jupyterhub/home/&lt;/code&gt;，然后用如下命令启动。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;docker run -p 8000:8000 -d --name jupyterhub -v /root/jupyterhub/jupyterhub/:/srv/jupyterhub -v /root/jupyterhub/home/:/home --restart&lt;span class="o"&gt;=&lt;/span&gt;always jupyterhub/jupyterhub_build jupyterhub
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;在镜像中新建用户，默认不能用 &lt;code&gt;root&lt;/code&gt;登录。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;useradd admin
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;passwd admin
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;会要求你输入密码，你看不见，输入两次一样的就行。&lt;/p&gt;
&lt;p&gt;更新pip,更新jupyterhub&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;pip install --upgrade pip
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;pip install --upgrade jupyterhub
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;pip install notebook --upgrade
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;然后就可以从浏览器通过&lt;code&gt;http://IP:8000&lt;/code&gt;访问了，输入刚刚新建的用户名和密码。&lt;/p&gt;
&lt;p&gt;&lt;img alt="Snipaste_2020-02-15_16-51-41.png" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2020/02/15/c1b5879bf9355.png"&gt;&lt;/p&gt;
&lt;h3 id="失败的方法参考"&gt;失败的方法参考
&lt;/h3&gt;&lt;h4 id="下载anaconda"&gt;下载Anaconda
&lt;/h4&gt;&lt;p&gt;手动从清华anaconda源下载anaconda-5.3.0的安装包，加执行权限然后bash执行。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.3.1-Linux-x86_64.sh
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;chmod +x Anaconda3-5.3.1-Linux-x86_64.sh
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;bash Anaconda3-5.3.1-Linux-x86_64.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;说一下这个安装过程中的问题，别一路憨憨就过去了。首先是&lt;code&gt;回车&lt;/code&gt;继续安装&lt;/p&gt;
&lt;p&gt;&lt;img alt="Snipaste_2020-02-14_16-57-42.png" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2020/02/14/a1287db256dad.png"&gt;&lt;/p&gt;
&lt;p&gt;然后会给你看一堆文件，问你接受条款么？不用管，直接&lt;code&gt;yes&lt;/code&gt;完事。&lt;/p&gt;
&lt;p&gt;&lt;img alt="Snipaste_2020-02-14_16-58-18.png" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2020/02/14/7b6901ca34272.png"&gt;&lt;/p&gt;
&lt;p&gt;接着问你启动命令要不要加到&lt;code&gt;bashrc&lt;/code&gt;里，填&lt;code&gt;yes&lt;/code&gt;，错过了的同学也可以参考&lt;a class="link" href="https://blog.51cto.com/m51cto/2370679" target="_blank" rel="noopener"
 &gt;Jupyterhub安装配置及心得&lt;/a&gt;手动加上。&lt;/p&gt;
&lt;p&gt;&lt;img alt="Snipaste_2020-02-14_16-58-59.png" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2020/02/14/000cdc7fe5197.png"&gt;&lt;/p&gt;
&lt;p&gt;最后问你要不要VSCode编辑器，咱在服务器上配置不用装，填&lt;code&gt;no&lt;/code&gt;，在笔记本上装，可以&lt;code&gt;yes&lt;/code&gt;。其实jupyter自带的Spyder编辑器也不错，VSCode编辑器使用起来也不错，看个人喜好。&lt;/p&gt;
&lt;p&gt;&lt;img alt="Snipaste_2020-02-14_16-59-42.png" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2020/02/14/ddc53f7c3ca05.png"&gt;&lt;/p&gt;
&lt;p&gt;装完记得重载一下配置&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;source&lt;/span&gt; ~/.bashrc
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="conda安装jupyterhub"&gt;conda安装Jupyterhub
&lt;/h4&gt;&lt;p&gt;添加清华源，然后升级一下，再安装。卡死请参考&lt;a class="link" href="https://www.jianshu.com/p/85cfbfdc88f3" target="_blank" rel="noopener"
 &gt;使用conda命令下载jupyter时一直在Solving environment卡死&lt;/a&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;conda config --set show_channel_urls yes
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;conda upgrade --all &lt;span class="c1"&gt;# 先升级一下，不然会很慢&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt;conda install -c conda-forge jupyterhub
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;7&lt;/span&gt;&lt;span class="cl"&gt;conda install jupyterlab
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="用pip安装jupyterhub"&gt;用pip安装Jupyterhub
&lt;/h4&gt;&lt;p&gt;使用pip，速度杠杠滴。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;python3 -m pip install jupyterhub -i https://pypi.douban.com/simple/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;npm install -g configurable-http-proxy
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;python3 -m pip install --upgrade notebook -i https://pypi.douban.com/simple/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;但是我参考&lt;a class="link" href="https://blog.51cto.com/m51cto/2370679" target="_blank" rel="noopener"
 &gt;Jupyterhub安装配置及心得&lt;/a&gt;设置后的jupyterHub，页面打不开，显示&lt;code&gt;Not Found&lt;/code&gt;,终端也报错。&lt;/p&gt;
&lt;p&gt;&lt;img alt="Snipaste_2020-02-14_20-46-34.png" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2020/02/14/e5f1ec0f915e3.png"&gt;&lt;/p&gt;</description></item></channel></rss>