繁体   English   中英

如何在 Docker 容器中运行的 Jupyter Notebook 中安装包

[英]How to install packages in Jupyter Notebook running in Docker Container

我尝试在 Windows 10 上设置 PySpark。经过各种挑战后,我决定改用 Docker Image,效果很好。

hello world脚本正在运行。 但是,我无法在由 Docker 提供支持的 Jupyter 上安装任何软件包。 请指教。

通常,我可以在 Anaconda 终端上使用以下代码:

问题

The following command must be run outside the IPython shell:

    $ pip install fastavro

我找不到如何安装 INSIDE docker。 请指教。

资源:

  • Docker 镜像 - jupyter/pyspark-notebook
  • 操作系统 - Windows 10

在 Jupyter cell/IPython shell 中,您可以运行:

!pip install PACKAGENAME 

安装软件包。 注意“!” 字首。

更新

当有多个环境时,使用该环境中使用的系统执行器(Python)。

import sys

!{sys.executable} -m pip install PACKAGENAME

保存更新的容器是合理的,因此您不需要每次都安装这些包。 一种方法是建立自己的形象。 假设您想使用 jupyter docker stack中的jupyter/datascience-notebook映像。 首先,您需要创建文件Dockerfile (无扩展名)。 该文件应包含以下说明:

# Start from a core stack version
FROM jupyter/datascience-notebook:6b49f3337709
# Install in the default python3 environment
RUN pip install --quiet --no-cache-dir 'flake8==3.9.2' && \
    fix-permissions "${CONDA_DIR}" && \
    fix-permissions "/home/${NB_USER}"

您可以使用 conda 或 mamba 代替 pip:

# install a package into the default (python 3.x) environment and cleanup after
# the installation
mamba install --quiet --yes some-package && \
    mamba clean --all -f -y && \
    fix-permissions "${CONDA_DIR}" && \
    fix-permissions "/home/${NB_USER}"

conda install --quiet --yes some-package && \
    conda clean --all -f -y && \
    fix-permissions "${CONDA_DIR}" && \
    fix-permissions "/home/${NB_USER}"

然后您需要使用新创建的 Dockerfile 进入目录并运行:

$ docker image build --tag jupyter/base-notebook:my_version .

其中--tag是具有以下结构的图像的名称repository name:tag name 并且不要忘记单点. (Dockerfile 的路径)最后!

当 docker 完成构建镜像后,您可以使用docker image ls在 docker 镜像列表中找到它:

REPOSITORY                           TAG               IMAGE ID       CREATED             SIZE
jupyter/base-notebook                my_version        3cf0f4683b46   11 minutes ago      1.12GB

现在您可以将新创建​​的映像与已安装的软件包一起使用:

$ docker run -p 8888:8888 jupyter/base-notebook:my_version

保存修改后的图像的另一种方法是使用docker commit命令。 您可以直接在 jupyter notebook 中安装所需的软件包,然后使用以下命令保存更改:

$ docker commit CONTAINER_ID  jupyter/base-notebook:my_version

您可以使用列出正在运行的容器的docker ps命令找到CONTAINER_ID

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM