18

我在Ubuntu 15.10中使用 Pyspark jupyter/pyspark-notebook的 Docker 容器。我需要安装 folium 及其所有依赖项并将 Pyspark 脚本运行到容器中。我成功安装了 Docker,拉取了镜像并使用命令运行它

docker run -d -p 8888:8888 -p 4040:4040 -v /home/$MYUSER/$MYPROJECT:/home/jovyan/work jupyter/pyspark-notebook

然后,我执行代码示例没有任何问题

import pyspark
sc = pyspark.SparkContext('local[*]')

# do something to prove it works
rdd = sc.parallelize(range(1000))
rdd.takeSample(False, 5)

/opt/conda我在(如文档中所述)中查找了 conda 环境,但我的/opt文件夹中没有 conda 。然后,我安装了 miniconda3 和 folium 以及所有依赖项作为一个普通的 Python 包(不涉及 Docker)。

它不起作用。当我运行图像并尝试使用import folium它导入包时,找不到 folium 包:

ImportErrorTraceback (most recent call last)
<ipython-input-1-af6e4f19ef00> in <module>()
----> 1 import folium

ImportError: No module named 'folium'

所以问题可以简化为两个问题:

  1. 容器的conda在哪里?
  2. 如何将我需要的 Python 包安装到容器中?
4

1 回答 1

15

回答第一个问题conda 环境在哪里?我们只需要在控制台中执行$ docker my_containers_name ls /opt/conda

第二个问题有两种选择:

  • 我们可以通过执行命令打开容器控制台

    $ docker exec -it my_containers_name /bin/bash

    并像普通的 conda 包一样安装包

    conda install --channel https://conda.anaconda.org/conda-forge folium

  • 我们可以修改 Docker 镜像的 Dockerfile 或者创建一个新的扩展之前的镜像。创建一个新的 Dockerfile 并添加行

    FROM jupyter/minimal-notebook
    USER jovyan
    RUN conda install --quiet --yes --channel https://conda.anaconda.org/conda-forge folium && conda clean -tipsy
    

    并建立我们的新形象。如果我们想修改原始的 Dockerfile,我们必须跳过第一行。

我通过分叉原始项目来创建自己的Dockerfile

感谢warmoverflowShanShan的评论

于 2016-05-13T14:16:43.517 回答