DockerでJupyterLab x mysqlの環境を作った話
最近pandasの勉強したいと思い、その上で今はやりのDockerを使った環境を用意したかったので、とりあえず作ってみました。 現在絶賛書いているところですが、一旦区切りがついたのでこちらを使って公開しようと思います。
やったこと
dockerの構成
構成図
ソースを説明するまえに、今回作成したコンテナの構成をざっと図にまとめておきます。
※4/10現在は、コンテナは全部で3台使っています。
構成としては、jupyterコンテナに、DBとしてMySQL5.7がインストールされたコンテナ、データの永続化のためのvolumeコンテナを動作させています。
ソースコード
現在開発中ではありますが、コードを公開しておきますので、興味がありましたら使用していただけると幸いです。 github.com
各containerの説明
各コンテナの詳しい説明を始めます。 コンテナの元として使用しているイメージの詳細な説明は時間の関係で今回割愛させていただきます。
jupyter container
イメージ:jupyter/datascience-notebook
scipyやpandas、numpyなどのよく使われるライブラリは大抵入ってるすごいイメージ Python3の他に、JuliaやRも使えるすぐれもの。対応させたインタプリタ:Ruby (2.3.1)
仲間内で使う時に、Rubyエンジニアも一定数いるので、Rubyインタプリタもあとからインストールしました。あとでインストールしたライブラリ
個人的にJupyterNotebookではなくJupyterLabを使いたかったので、別途インストールしました。-
- JupyterLab
- PyMySQL
iruby、pry、cztopはrubyをJupyter上で使用するために必要なめ、別にインストール
- Ruby
- iruby
- pry
- cztop
- Daru
mysql
1.イメージ:mysql:5.7
data volume
- イメージ:busybox
使用方法
起動
docker-compose up -d
停止
docker-compose stop ※ docker-compose up で起動した場合は、Ctrl + c で停止できる
イメージの破棄
docker-compose rm
ほかのコマンドが気になる方は、公式のリファレンスを参考にしていただければと思います。 docker-compose コマンド概要 — Docker-docs-ja 1.11.0 ドキュメント
最後に
簡単ではありますが、今回作成したDockerの紹介をさせていただきました。 まだ詳しい設定などは把握できていない部分もあるので、調べて書き留めていければなと思っています。
Elasticsearch x kibana環境もdockerでできそうだからあとで挑戦してみようかな・・