DockerはPythonの環境構築に必須
Dockerとは
OSや環境をコンテナのような物に保管して管理し、いつでもどのPCでも同じ環境で動作することが可能になります。
Dockerを使うメリット
・初心者でも簡単に短時間で環境が構築できる
・どのPCでも同じ環境が作れる
・好きなOSを選んで環境が作れる
Dockerインストール
Dockerの公式サイトでアプリをインストールする手順を紹介します。
画面の「Get Started」ボタンを押します
ダウンロードする端末を選択します。
今回はMacを選択した場合の導入方法についての説明です。
インストールが終わるとアプリイメージをドラッグ&ドロップしてMacのアプリ内に格納します。
これでDockerアプリが使用できます。
ターミナルでの実行
ターミナルを立ち上げ次のように入力します。
docker run hello-world
このように「Hello from Docker」と出力されれば成功です。
jupyter-labの環境を構築する
デスクトップに「MyDocker」というフォルダを作ります。
そのフォルダに「Dockerfile」というファイルを作成します。
FROM ubuntu:latest
RUN apt-get update && apt-get install -y sudo wget vim curl gawk make gcc
RUN wget https://repo.continuum.io/archive/Anaconda3-2019.03-Linux-x86_64.sh && \
sh Anaconda3-2019.03-Linux-x86_64.sh -b && \
rm -f Anaconda3-2019.03-Linux-x86_64.sh && \
sudo curl -sL https://deb.nodesource.com/setup_10.x | sudo bash - && \
sudo apt-get install -y nodejs
ENV PATH $PATH:/root/anaconda3/bin
RUN mkdir /workspace
CMD ["jupyter-lab", "--ip=0.0.0.0","--port=8888" ,"--no-browser", "--allow-root", "--LabApp.token=''"]
今回、キノコードさんのコードを引用させていただきました。
このdockerファイルはOSをubuntuとしてAnacondaをインストールした物になっています。
詳細はこちらの記事で詳しく説明されています。
理屈はさておき、最速でDockerを使ってPythonのデータ分析の環境構築をする
ビルドする
ビルドとはdockerファイルからイメージを作成することです。
docker build -t jlab:latest /MyDocker
※MyDockerのところはDockerfileを保存しているディレクトリのURL
「jlab」のところはコンテナ名で好きな名前で保存してください。
今回のコンテナ名はjupyterlab用ということで「jlab」としていきます。
Successfully builtと出力されたら完了です。
作成したdockerイメージは下記コマンドでイメージの一覧が表示されます。
docker images
IMAGE IDは次のマウント作業やいろいろな場面で使用するのでメモしておくと便利です。
マウントする
マウントとはdockerコンテナとパソコンを同期すること。
同期したフォルダ内で共通のファイルを作成したり編集したりできるようになります。
{IMAGE ID}のところは先ほどのIDを入力します。
docker run -p 8888:8888 -v /MyDocker:/workspace --name jlab {IMAGE ID}
http://localhost:8888/
のURLにアクセスするとjupyterLabのメイン画面が表示されます。
ここまででDockerの導入とPythonの環境構築は完了です。
plotlyの導入
docker内に各種ライブラリをインストールする
グラフ可視化ソフトで有能な以下のライブラリをインストールします。
・plotly
・plotly_express
・plotly-extension(jupyterLab内でグラフを表示する用)
docker exec -it jlab bash
pip install plotly
pip install plotly_express
jupyter labextension install @jupyterlab/plotly-extension
全てインストールが終わったらexitで終了します。
jupyterLab内でplotlyを使ったグラフを作成する
import plotly.express as px
df = px.data.tips()
fig = px.box(df, y="total_bill")
fig.show()
HTMLで保存した箱ひげ図
箱ひげ図が描けました。
参考教材
Plotlyに関する書籍紹介
↓Plotlyについて学べる数少ない参考書です。