加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何将包含所有依赖项的python包安装到Docker镜像中?

发布时间:2020-12-13 20:11:39 所属栏目:百科 来源:网络整理
导读:我在Ubuntu 15.10中使用Docker容器为Pyspark jupyter / pyspark-notebook工作.我需要安装具有所有依赖项的folium并在容器中运行Pyspark脚本.我成功安装了Docker,拉出了图像并使用命令运行它 docker run -d -p 8888:8888 -p 4040:4040 -v /home/$MYUSER/$MYPR
我在Ubuntu 15.10中使用Docker容器为Pyspark jupyter / pyspark-notebook工作.我需要安装具有所有依赖项的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在哪里?
>如何将我需要的Python包安装到容器中?

回答第一个问题conda环境在哪里?我们只需要在console $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或创建一个扩展前一个镜像的新Docker文件.创建新的Dockerfile并添加行

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

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

我通过分叉original project来创建自己的Dockerfile.

感谢warmoverflow和ShanShan,感谢您的评论

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读