我正在 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 环境(正如它在 documentation 中所说的那样),但我的 /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'
所以问题可以简化为两个问题:
最佳答案
回答第一个问题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通过 fork original project .
谢谢 warmoverflow和 ShanShan供您的意见
https://stackoverflow.com/questions/37140874/
相关文章:
java - 如何在Docker中初始化数据库后启动flyway
docker - Jenkins 2.0 : Running SBT in a docker con
android - 为什么安卓模拟器这么慢?我们如何加快Android模拟器的速度?
docker - 对 docker 的 -i "Keep STDIN open even if no
macos - 在 docker 中运行 Webpack-dev-server 比在本地机器上运行要
networking - 如何将 Docker 网络暴露给主机?
linux - nginx/apache重定向vps上docker容器上的输出端口
docker - Dockerfile 中的开发依赖项或用于生产和测试的单独 Dockerfile