使用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环境 的相关文章

  • Virtualenv 在 OS X Yosemite 上失败并出现 OSError

    我最近更新到 OSX Yosemite 现在无法使用virtualenv pip 每当我执行 virtualenv env 它抛出一个 OSError Command Users administrator ux env bin pytho
  • 如何返回 cost, grad 作为 scipy 的 fmin_cg 函数的元组

    我怎样才能使 scipy 的fmin cg使用一个返回的函数cost and gradient作为元组 问题是有f对于成本和fprime对于梯度 我可能必须执行两次操作 非常昂贵 grad and cost被计算 此外 在它们之间共享变量可
  • 在Python中从大文件中搜索单词列表

    我是新蟒蛇 我有一个单词列表和一个非常大的文件 我想删除文件中包含单词列表中的单词的行 单词列表按排序给出 并且可以在初始化期间输入 我正在努力寻找解决这个问题的最佳方法 我现在正在进行线性搜索 这花费了太多时间 有什么建议么 您可以使用i
  • 从 Azure ML 实验中访问 Azure Blob 存储

    Azure ML 实验提供了通过以下方式读取 CSV 文件并将其写入 Azure Blob 存储的方法 Reader and Writer模块 但是 我需要将 JSON 文件写入 blob 存储 由于没有模块可以执行此操作 因此我尝试在Ex
  • 使用 Boto3 以字符串形式打开 S3 对象

    我知道使用 Boto 2 可以使用以下命令将 S3 对象作为字符串打开 get contents as string http boto readthedocs org en latest ref file html highlight c
  • Series.sort() 和 Series.order() 有什么区别?

    s pd Series nr randint 0 10 5 index nr randint 0 10 5 s Output 1 3 7 6 2 0 9 7 1 6 order 按值排序并返回一个新系列 s order Output 2 0
  • 如何过滤 Pandas GroupBy 对象并获取 GroupBy 对象?

    当对 Pandas groupby 操作的结果执行过滤时 它返回一个数据帧 但假设我想执行进一步的分组计算 我必须再次调用 groupby 这似乎有点绕 有更惯用的方法吗 EDIT 为了说明我在说什么 我们无耻地从 Pandas 文档中窃取
  • 协程从未被等待

    我正在使用一个简单的上下文管理器 其中包含一个异步循环 class Runner def init self self loop asyncio get event loop def enter self return self def e
  • 如何确保 re.findall() 停止在正确的位置?

    这是我的代码 a import re re findall r lt title gt lt title gt a 结果是 title aaa
  • 在Python上获取字典的前x个元素

    我是Python的新手 所以我尝试用Python获取字典的前50个元素 我有一本字典 它按值降序排列 k 0 l 0 for k in len dict d l 1 if l lt 51 print dict 举个小例子 dict d m
  • AttributeError:“模块”对象没有属性[重复]

    这个问题在这里已经有答案了 我有两个 python 模块 a py import b def hello print hello print a py print hello print b hi b py import a def hi
  • Spark 和 Python 使用自定义文件格式/生成器作为 RDD 的输入

    我想问一下 Spark 中输入的可能性 我可以看到从http spark apache org docs latest programming guide html http spark apache org docs latest pro
  • “google cloud run”将 HOME 更改为 CMD 的 /home,其中 RUN 使用 /root

    我正在做的是在 Dockerfile 中的 RUN 命令中设置 sbcl 和 Quicklisp 然后使用 CMD 加载我的自定义代码 当我在本地计算机上使用 Docker 运行它时 一切都很好 但是当我将其推送到 google run 时
  • Airflow 1.9 - 无法将日志写入 s3

    我在 aws 的 kubernetes 中运行气流 1 9 我希望将日志发送到 s3 因为气流容器本身的寿命并不长 我已经阅读了描述该过程的各种线程和文档 但我仍然无法让它工作 首先是一个测试 向我证明 s3 配置和权限是有效的 这是在我们
  • 使用 Python 将连续日期分组在一起

    Given dates datetime 2014 10 11 datetime 2014 10 1 datetime 2014 10 2 datetime 2014 10 3 datetime 2014 10 5 datetime 201
  • 检测是否从psycopg2游标获取?

    假设我执行以下命令 insert into hello username values me 我跑起来就像 cursor fetchall 我收到以下错误 psycopg2 ProgrammingError no results to fe
  • 如何在亚马逊 EC2 上调试 python 网站?

    我是网络开发新手 这可能是一个愚蠢的问题 但我找不到可以帮助我的确切答案或教程 我工作的公司的网站 用 python django 构建 托管在亚马逊 EC2 上 我想知道从哪里开始调试这个生产站点并检查存储在那里的日志和数据库 我有帐户信
  • AWS Lambda 不读取环境变量

    我正在编写一个 python 脚本来查询 Qualys API 中的漏洞元数据 我在 AWS 中将其作为 lambda 函数执行 我已经在控制台中设置了环境变量 但是当我执行函数时 出现以下错误 module initialization
  • pandas 中数据帧中的随机/洗牌行

    我目前正在尝试找到一种方法来按行随机化数据框中的项目 我在 pandas 中按列洗牌 排列找到了这个线程 在 pandas 中对 DataFrame 进行改组 排列 https stackoverflow com questions 157
  • IndexError - 具有匀称形状的笛卡尔 PolygonPatch

    我曾经使用 shapely 制作一个圆圈并将其绘制在之前填充的图上 这曾经工作得很好 最近 我收到索引错误 我将代码分解为最简单的操作 但它甚至无法执行最简单的循环 import descartes import shapely geome

随机推荐

  • 传感器学习——蓝牙模块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