jupyter调用docker环境和conda环境

本文以jupyter调用Seurat 4.0的docker环境为例子说明

1. 首先安装docker

去官网下载相关的版本和安装,需要注意的是如果是windows10的家庭版本电脑,安装docker之前需要先安装ubuntu和WSL2

2. 安装Seurat 4.02镜像

docker pull satijalab/seurat:4.0.2

3. 启动镜像

## 首先要确定好你的工作目录,然后把其挂在到镜像里面
## 这里到工作目录为:/Users/liji/PycharmProjects/docker_R
## 启动镜像
## 如果是wind系统,路径需要改成linux,例如D:\docker_R改成/D/docker_R
docker run -it --name notebook-server -p 7777:8888 -v /Users/liji/PycharmProjects/docker_R:/Users/liji/PycharmProjects/docker_R satijalab/seurat:4.0.2  /bin/bash

4. 在镜像里面安装jupyter

如果docker的镜像没有vi,需要安装下

apt-get update
apt-get install vim
# 安装 jupyter
pip install jupyter notebook
# 配置jupyter notebook
jupyter notebook --generate-config

执行完上述之后,会生成jupyter_notebook_config.py文件,然后进行下面的配置

## 配置jupyter, 镜像里面没有vim的话用cat
## 集群远程配置可以参考: https://www.jianshu.com/p/444c3ae23035
# 允许root启动
c.NotebookApp.allow_root = True
# 允许远程访问
c.NotebookApp.ip = '*'
# 设置notebook文件夹
c.NotebookApp.notebook_dir = '/Users/liji/PycharmProjects/docker_R'
# 设置静态token,这样就不用每次换token了,另一种方法是设置密码password
c.NotebookApp.token = '根据自己的需求修改(网页打开时候用)'

5. 在Jupyter中安装R内核

install.packages('devtools') #在R中安装devtools库
## 利用镜像工具从github网站下载安装R kernel:
devtools::install_github('IRkernel/IRkernel')
# 失败的话选择:先wget压缩包到R工作目录,然后本地安装
wget https://cran.rstudio.com/src/contrib/IRkernel_1.2.tar.gz ./
 devtools::install_local('IRkernel-master.tar.gz')
IRkernel::installspec()  # to register the kernel in the current R installation
## 如果需要Cario
https://www.cairographics.org/download/

6. Jupyter使用R内核

然后在镜像运行:

## 第一次启动容器:
docker run -it --name notebook-server -p 7777:8888 -v /Users/liji/PycharmProjects/docker_R:/Users/liji/PycharmProjects/docker_R satijalab/seurat:4.0.2  /bin/bash

## 已经有容器了:
$ docker container ls
CONTAINER ID   IMAGE                    COMMAND       CREATED        STATUS         PORTS                                       NAMES
14b3f03dd31e   satijalab/seurat:4.0.2   "/bin/bash"   22 hours ago   Up 4 minutes   0.0.0.0:7777->8888/tcp, :::7777->8888/tcp   notebook-server
## 进入运行中的容器
$ docker exec -it 14b3f03dd31e /bin/bash

## 在容器中运行jupyter
$ jupyter notebook
root@14b3f03dd31e:/# jupyter notebook
[W 07:57:42.752 NotebookApp] WARNING: The notebook server is listening on all IP addresses and not using encryption. This is not recommended.
[I 07:57:42.767 NotebookApp] Serving notebooks from local directory: /Users/liji/PycharmProjects/docker_R
[I 07:57:42.768 NotebookApp] Jupyter Notebook 6.4.0 is running at:
[I 07:57:42.768 NotebookApp] http://14b3f03dd31e:8888/?token=...
[I 07:57:42.768 NotebookApp]  or http://127.0.0.1:8888/?token=...
[I 07:57:42.768 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[W 07:57:42.781 NotebookApp] No web browser found: could not locate runnable browser.

修改:http://127.0.0.1:8888/?token=...
这里上面的7777和自己设置的token(一连串字符)

jupyter.png

docker有用的命令

#### 容器一旦从镜像建立之后不需要重新建立,可以用下面的命令来启动
docker ps -a             来看终止状态的容器
docker start              启动终止的容器
docker container ls   来看运行中的容器

jupyter 调用conda环境

### 需要先自己安装好conda和相关的环境,然后进去环境里面
### 不需要每个环节都安装jupyter,只需要安装ipykernel
conda install ipykernel
python -m ipykernel install --user --name 环境名称 --display-name "在jupyter中显示的环境名称"
### 需要注意的是在conda环境启动jupyter

远程密码设置

你可能感兴趣的:(jupyter调用docker环境和conda环境)