使用Docker安装配置Jupyter并配置R语言与Python环境

2023-10-31

Docker

docker的安装

docker的安装

将当前用户添加到docker用户组

为了避免每次使用docker命令都需要加上sudo权限,可以将当前用户加入安装中自动创建的docker用户组(可以参考官方文档):

sudo usermod -aG docker $USER

拉取一个镜像

docker pull ubuntu:20.04

创建配置目录

# xx为你的用户名
mkdir -p /home/xx/data/jupyter/
mkdir -p /home/xx/data/jupyter/.jupyter
chmod 777 -R /home/xx/data/jupyter/

启动docker服务

docker run --name jupyter -itd \
-p 8888:8888 \
-v /home/xx/data/jupyter:/home/jupyter \
ubuntu:20.04
  • 命名容器为jupyter,后台运行
  • 映射宿主机8888端口到容器的8888端口
  • 挂载宿主机目录/home/xx/data/jupyter到容器目录/home/jupyter

登录jupyter容器

docker attach jupyter

安装vim

apt-get install vim

更换源

cd /etc/apt/
vim sources.list

清华镜像

apt-get update

JupyterNotebook.

以下均在root下运行的命令如果在普通用户需要加上sudo权限

设置python

  1. 更新本地apt包索引
apt-get update
  1. 安装 pip 和 Python 头文件
apt-get install python3-pip python3-dev
  1. 升级pip
pip3 install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple
  1. 安装常用命令
apt-get install curl
apt-get install unzip

安装Jupyter

pip install jupyter -i https://pypi.tuna.tsinghua.edu.cn/simple

设置密码

ipython

在ipython中输入以下命令

from notebook.auth import passwd
passwd()

生成密钥

In [1]: from notebook.auth import passwd

In [2]: passwd()
Enter password: 
Verify password: 
Out[2]: 'argon2:XXXXXX' # 复制上引号内的内容

In [3]: exit()

生成jupyter的config文件

jupyter notebook --generate-config

修改配置文件

vim ~/.jupyter/jupyter_notebook_config.py

在末尾加入如下内容

c.NotebookApp.ip='*'
c.NotebookApp.password = u'argon2:$XXXXX' # 刚刚复制的内容
c.NotebookApp.open_browser = False
c.NotebookApp.port =8888

启动jupyter notebook

nohup jupyter notebook --allow-root &

安装插件

  Jupyter Notebook 扩展插件(nbextensions)是一些 JavaScript 模块,我们可以使用插件强化 Notebook 的功能。扩展插件本质上修改了 Jupyter UI,以实现更强大的功能。

界面添加 Nbextensions

pip install jupyter_nbextensions_configurator -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/
jupyter nbextensions_configurator enable --user
jupyter nbextension list
退出jupyter容器Ctrl+p,Ctrl+q
docker restart jupyter
docker attach jupyter
nohup jupyter notebook --allow-root &

安装常用扩展集合

pip install jupyter_contrib_nbextensions -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/
jupyter contrib nbextension install --user
jupyter nbextension list

R

R 安装

apt-get install r-base

在jupyter notebook中配置R的kernel

安装必要的lib

apt-get install libzmq3-dev libssl-dev openssl  libssl-dev

进入R环境​

R
install.packages(c('repr', 'IRdisplay', 'evaluate', 'crayon', 'pbdZMQ', 'uuid', 'digest')) 

注: 会提示选择mirrors, 建议选择 0-cloud

install.packages( 'IRkernel')
IRkernel::installspec() 

如果显示​如下结果,说明配置成功。

[InstallKernelSpec] Installed kernelspec ir in /home/xxx/.local/share/jupyter/kernels/ir​

注意:在jupyter上加载R包时一定要设定镜像,不然一般会失败:

# 通过如下命令设定镜像,比如我选择镜像ustc
options(repos = 'http://mirrors.ustc.edu.cn/CRAN/')
# 检查镜像是否更改
getOption('repos')

配置Nginx

jupyter 使用了 websocket 协议,所以需要配置支持 websocket。
如果不配置的话,通过域名访问时会报错无法连接内核,也就无法运行python脚本。

server {
    listen 80;
    server_name 你的域名;
    charset utf-8;
    location /{
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;

        proxy_pass http://你的ip:8888;

        # WebSocket support
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

如有错误以及可以改进的地方欢迎在下方评论区留言!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用Docker安装配置Jupyter并配置R语言与Python环境 的相关文章

  • 打字!带有 pyautogui 的字符

    这可以模拟击键 import pyautogui pyautogui typewrite hello world interval 0 1 除了那个 它写道hello world 使用 FR 键盘布局 它写道hello world 使用 E
  • 姜戈。列出静态文件夹中的文件

    我遇到的一件看似基本的事情是将一个简单的静态文件列表 例如我的服务器上单个存储库目录的内容 呈现为链接列表 这是否安全是另一个问题 但假设我想这样做 这就是我的工作目录的样子 我想将模板中分析文件夹的所有文件作为链接列出 I have tr
  • Python 3.4 中的“异步”

    aiohttp 的入门文档提供了以下客户端示例 import asyncio import aiohttp async def fetch page session url with aiohttp Timeout 10 async wit
  • python numpy savetxt

    有人可以指出我在这里做错了什么吗 import numpy as np a np array 1 2 3 4 5 dtype int b np array a b c d e dtype S1 np savetxt test txt zip
  • 纯粹依赖 pyproject.toml 有哪些缺点?

    假设您有一个 Python 程序 仅使用它就可以成功打包pyproject toml 有什么缺点 为什么使用setup py or setup cfg在这种情况下 没有 没有什么坏处setup py 只是在某些特定情况下 包装的某些元素无法
  • 2 列 pandas 上的地图

    我有一个数据框 如下所示 Col1 Col2 0 A PY 1 B PA 2 C PB 3 B PB 以及这个系列 Value Col1 Col2 A PY 20 B PB 30 我想做一个映射 如果该系列有一个索引 仅前 Col1 那么它
  • Javascript 与 Python 关于 Python 'map()' 函数的比较

    Python中有一个函数叫做map这可以让你去 map someFunction x y z 并继续应用该功能的列表 是否有与此功能等效的 JavaScript 我现在刚刚学习Python 虽然我被告知javascript是函数式语言 但我
  • Pandas apply 与 np.vectorize 从现有列创建新列的性能

    我正在使用 Pandas 数据框 并希望创建一个新列作为现有列的函数 我还没有看到关于之间速度差异的很好的讨论df apply and np vectorize 所以我想我会在这里问 熊猫apply 功能很慢 根据我的测量 在一些实验中如下
  • 命名卷在 docker 中如何工作?

    我正在努力理解以下 docker 示例中的命名卷到底是如何工作的docs https docs docker com compose compose file volume configuration reference version 3
  • 编辑 scikit-learn 决策树

    我想编辑 sklearn DecisionTree 例如改变条件或切割节点 叶子等 但似乎没有功能可以做到这一点 如果我可以导出到文件 编辑它以导入 如何编辑决策树 环境 Windows 10 python3 3 sklearn 0 17
  • Python + PostgreSQL + 奇怪的ascii = UTF8编码错误

    我有包含字符的 ascii 字符串 x80 代表欧元符号 gt gt gt print x80 当将包含该字符的字符串数据插入数据库时 我得到 psycopg2 DataError invalid byte sequence for enc
  • 为什么导入 pdb 时出现此错误? “模块”对象没有属性“ascii_letters”

    尝试调试我的代码 我正在导入库pdb import sys from subprocess import check call import pdb functions if name main Code 我收到此错误 File reg p
  • 使用 Scipy imsave 将 Numpy 数组保存到图像时保留未更改的数据

    使用 Scipy 保存二维 Numpy 数组 单个值 时toimage or imsave像素值与 Numpy 数组中的像素值不完全匹配 相反 在某些区域 主要是边缘 图像算法似乎使用某种插值 是否有一个选项可以停止插值并保留准确的数据 例
  • Python 正则表达式部分匹配或“hitEnd”

    我正在编写一个扫描器 因此我将任意字符串与正则表达式规则列表进行匹配 如果我可以模拟 Java hitEnd 功能 不仅知道正则表达式何时不匹配 还知道何时匹配 这将非常有用 can t匹配 当正则表达式匹配器在决定拒绝输入之前到达输入末尾
  • 在Python中创建一个新表

    我正在尝试从数控机床中提取数据 事件每毫秒发生一次 我需要过滤掉一些用管道 分隔的变量分隔符 PuTTy exe 程序生成的日志文件 我尝试阅读熊猫 但列不在同一位置 df pd read table data log sep 日志文件的一
  • 在 Flask (WSGI) 中使用全局单例,我是否需要担心竞争条件? [复制]

    这个问题在这里已经有答案了 Flask 的 hello world 演示是 from flask import Flask app Flask name app route def hello return Hello World if n
  • 如何修复错误“AttributeError:‘模块’对象在 python3 中没有属性‘客户端’?

    以下是我的代码 import http h1 http client HTTPConnection www bing com 我认为没问题 但是 python 给了我以下错误 AttributeError 模块 对象没有属性 客户端 我想知
  • Python 视频框架

    我正在寻找一个 Python 框架 它将使我能够播放视频并在该视频上绘图 用于标记目的 我尝试过 Pyglet 但这似乎效果不是特别好 在现有视频上绘图时 会出现闪烁 即使使用双缓冲和所有这些好东西 而且似乎没有办法在每帧回调期间获取视频中
  • Matplotlib 图例不工作

    自从升级 matplotlib 以来 每当尝试创建图例时 我都会收到以下错误 usr lib pymodules python2 7 matplotlib legend py 610 UserWarning Legend does not
  • 如何检查列表是否为空?

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 例如 如果通过以下内容 a 我如何检查是否a是空的 if not a print Lis

随机推荐

  • 传感器学习——蓝牙模块HC-05

    传感器学习 蓝牙模块HC 05 硬件连接VCC 接电源的正极 这里需要接 5V GND 接电源的负极 RXD 接收端 蓝牙模块接收从其他设备发来的数据 正常情况接其他设备的发送端TXD TXD 发送端 蓝牙模块发送数据给其他设备 正常情况接
  • 玩转Mysql系列 - 第7篇:玩转select条件查询,避免采坑

    这是Mysql系列第7篇 环境 mysql5 7 25 cmd命令中进行演示 电商中 我们想查看某个用户所有的订单 或者想查看某个用户在某个时间段内所有的订单 此时我们需要对订单表数据进行筛选 按照用户 时间进行过滤 得到我们期望的结果 此
  • mac电脑安装paste教程以及重新安装软件后不能使用解决方法

    问题背景 mac电脑安装paste教程以及重新安装软件后不能使用解决方法 mac电脑安装paste失败 安装好后还是无法使用 paste显示还是历史粘贴信息 导致无法使用 新 copy的内容也无法进入历史粘贴版里面 笔者电脑配置信息 Mac
  • PostgreSQL 锁表

    PostgreSQL 锁表解决 解决 一 碰到的问题 Navicat删除表是一直转圈 出现问题的原因 短时间多次对同一张表进行查询造成表死锁 解决思路 通过查询进程把锁住的pid查出来然后解锁 1 查询正在运行的进程 datname为数据库
  • sqlserver连接字符串_10分钟使用EF Core连接MSSQL数据库

    给DotNet加星标 提升 Net技能 转自 Ron liang cnblogs com viter p 10243577 html 前言 在 NET Core 2 2中Microsoft AspNetCore App 默认内置了Entit
  • 【UE】读写配置文件 ue读写ini文件

    UE读写ini文件 前言 1 新建C 文件 2 编写代码 2 1 头文件h文件 2 2 cpp文件 3 函数说明 3 1 写入ini 3 2 读取ini 4 打包后读取ini数据 4 1 打开Editor时的Game ini 4 2 打包后
  • 快速成长的秘诀|学会自我培养和培养他人

    快速成长总共三篇 分别是 完成自我认知升级 自我成长好方法 和 自我培养和培养他人 本篇是第三篇 篇幅较长 针对长文的阅读方式 依旧建议在 完成自我认知升级 中提到的阅读方式 在一个不被打扰的时间做好只字不差阅读 用批判性思维思考和理解其中
  • 银行从业中级系列课程之——内容概述

    课程初衷 由于在体制内工作 银行从业已经成了内部要求 本人连续两年重在参与了 终于决定为了奖励的400元战斗一下 同时提升下个人的银行从业水平 课程简介 本课程根据2021年课程大纲进行汇总 同时结合了233网校的课程内容进行了编写 力求能
  • linux编译mesa,编译安装 Mesa (OpenGL)

    最近因为工作需要 想看一下 OpenGL 的东西 就在笔记本上搭建了 OpenGL 的环境 解压后 运行 configure 根据提示安装必要的包 编译 安装 我安装到了 usr local private 下面 usr local pri
  • 佳威线管分级说明

    次次底级 keb sl刹车 次底 cgx sl刹车 lex sl变速 底级 无润滑 cex刹车 lex变速
  • Spark Task的各个动作时间来源以及Task Schedule Delay 问题排查

    背景 发现线上偶尔会出现一些Spark Task会显示Schedule Delay数分钟甚至十几分钟 所以要排查原因 Task 时间分析以及Schedule Delay计算公式 如图所示 时间轴上面的表示Driver 记录到的各个时间 时间
  • 结构体与共用体(联合体)

    参考 结构体与共用体 作者 一只青木呀 发布时间 2020 08 09 08 29 22 网址 https blog csdn net weixin 45309916 article details 107889394 参考 联合体 uni
  • 多线程下载

    原理 服务器cpu分配给每条线程的时间片是相同的 服务器带宽平均分配给每个线程 所以客户端开启的线程越多就能抢占到更多的服务器资源 用java实现 public class NultiDownload static String path
  • MySQL多表关系及多表查询

    多表关系 在关系型数据库中存在着三种多表关系 分别是一对多 多对一 多对多以及一对一 之所以会产生这些关系 是因为在进行数据设计的时候 分析得出业务之间存在着一定的关系 进而在数据中也就存在了这些关系 一对多 一对多是最基础的表间关系 意思
  • 给大家推荐一门比较适合用来学习流量分析技术的公开课(内附课程b站链接)

    最近看到同事在看一门课程 是CSNA出的一套免费对外公开课 跟着看了一下觉得不错 分享给大家 CSNA是国内比较老牌且低调的网络技术分析认证培训了 在网络运维和网络安全方向上还是有口皆碑的 课程内容比较体系化 有理论也有实操 涵盖了业务性能
  • php面试题猴子123报数(猴子选大王)

    题目就是有N个猴子 123循环报数数到3的猴子被踢出下一个接着报数 一遍一遍的循环直到剩余一个猴子 求这个猴子是最开始的第几号猴子 我想到了两个方法 第一个就是模拟报数的模式 每到3的时候unset一个元素 最后剩余的就是 要求的猴子 代码
  • windows如何关闭IIS (因为占用80端口而无法启动nginx)

    一 场景概述 正在写一个Web项目但是每次输入都需要加上端口号 所以想用服务器代理一下端口 让可以直接用nginx来解决这个问题但是 nginx异常无法打开 结果发现80端口被异常占用 因为windows的IIS也占用80端口号 比如win
  • 电脑命令教程计算机基础知识,电脑常用运行命令图文教程(DOS命令)

    本文介绍一些常用的运行窗口命令 也是DOS命令 同时所有的命令均在win7旗舰版测试通过 并附有运行后的图片 运行命令窗口如下 工具 原料 电脑一台 本文以win7系统的电脑为例 方法 步骤 1 调出运行命令窗口 按快捷键 win R 或者
  • java|8.18总结|基本功能

    1 思维导图 2 用自己的话描述某知识点是什么 举例 总结 一句话总结 环境变量 理解 环境变量相当于提前封装好一个环境 功能 在此环境下 比如在有path环境下 可以直接执行java文件 不用先进入JAVA的目录才能运行java 如果需要
  • 使用Docker安装配置Jupyter并配置R语言与Python环境

    文章目录 Docker docker的安装 将当前用户添加到docker用户组 拉取一个镜像 创建配置目录 启动docker服务 登录jupyter容器 安装vim 更换源 JupyterNotebook 设置python 安装Jupyte