OSや環境をコンテナのような物に保管して管理し、いつでもどのPCでも同じ環境で動作することが可能になります。
・初心者でも簡単に短時間で環境が構築できる
・どのPCでも同じ環境が作れる
・好きなOSを選んで環境が作れる
Dockerの公式サイトでアプリをインストールする手順を紹介します。
画面の「Get Started」ボタンを押します
ダウンロードする端末を選択します。
今回はMacを選択した場合の導入方法についての説明です。
インストールが終わるとアプリイメージをドラッグ&ドロップしてMacのアプリ内に格納します。
これでDockerアプリが使用できます。
ターミナルを立ち上げ次のように入力します。
docker run hello-world
このように「Hello from Docker」と出力されれば成功です。
デスクトップに「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
・plotly_express
・plotly-extension(jupyterLab内でグラフを表示する用)
docker exec -it jlab bash
pip install plotly
pip install plotly_express
jupyter labextension install @jupyterlab/plotly-extension
全てインストールが終わったらexitで終了します。
import plotly.express as px
df = px.data.tips()
fig = px.box(df, y="total_bill")
fig.show()
箱ひげ図が描けました。
↓Plotlyについて学べる数少ない参考書です。