18

私はPyspark jupyter/pyspark-notebookの Docker コンテナーを使用してUbuntu 15.10で作業しています。すべての依存関係とともに 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環境を探しましたが、フォルダーにcondaがありません/opt。次に、すべての依存関係を含む 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'

したがって、問題は次の 2 つの質問に減らすことができます。

  1. コンテナーのcondaはどこにありますか?
  2. 必要な Python パッケージをコンテナーにインストールするにはどうすればよいですか?
4

1 に答える 1

15

最初の質問に答えるには conda 環境はどこですか? console で実行するだけです$ docker my_containers_name ls /opt/conda

2 番目の質問には 2 つの選択肢があります。

  • コマンドを実行してコンテナコンソールを開くことができます

    $ 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 に答える