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

nqwrtyyt  于 2023-01-25  发布在  Docker
关注(0)|答案(2)|浏览(187)

我试着在Windows10上设置PySpark,在经历了一些不同的挑战后,我决定使用Docker Image,效果很好。
hello world脚本正在工作。但是,我无法在Docker支持的Jupyter上安装任何软件包。请告知。
通常情况下,我可以使用下面的代码对Anaconda终端:

版本

The following command must be run outside the IPython shell:

    $ pip install fastavro

我找不到如何安装内部码头。请告知。

资源:

  • Docker图片-木星/pyspark-笔记本
  • 操作系统- Windows 10
pexxcrt2

pexxcrt21#

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

!pip install PACKAGENAME

安装程序包。请注意前缀"!"。

更新

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

import sys

!{sys.executable} -m pip install PACKAGENAME
h22fl7wq

h22fl7wq2#

保存一个更新的容器是合理的,这样你就不需要每次都安装这些包。一种方法是构建你自己的映像。假设你想使用来自jupyter docker stackjupyter/datascience-notebook映像。首先,你需要创建文件Dockerfile(没有扩展名)。这个文件应该包含以下指令:

# Start from a core stack version
FROM jupyter/datascience-notebook:latest
# 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

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

相关问题