田舎プログラマーの備忘録

田舎出身のWEBプログラマーが書く備忘録です。

DockerでJupyterLab x mysqlの環境を作った話

最近pandasの勉強したいと思い、その上で今はやりのDockerを使った環境を用意したかったので、とりあえず作ってみました。 現在絶賛書いているところですが、一旦区切りがついたのでこちらを使って公開しようと思います。

やったこと

dockerの構成

構成図

ソースを説明するまえに、今回作成したコンテナの構成をざっと図にまとめておきます。

※4/10現在は、コンテナは全部で3台使っています。

構成としては、jupyterコンテナに、DBとしてMySQL5.7がインストールされたコンテナ、データの永続化のためのvolumeコンテナを動作させています。 f:id:country-dev:20180410234610p:plain

ソースコード

現在開発中ではありますが、コードを公開しておきますので、興味がありましたら使用していただけると幸いです。 github.com

各containerの説明

各コンテナの詳しい説明を始めます。 コンテナの元として使用しているイメージの詳細な説明は時間の関係で今回割愛させていただきます。

jupyter container

  1. イメージ:jupyter/datascience-notebook
    scipyやpandas、numpyなどのよく使われるライブラリは大抵入ってるすごいイメージ Python3の他に、JuliaやRも使えるすぐれもの。

  2. 対応させたインタプリタRuby (2.3.1)
    仲間内で使う時に、Rubyエンジニアも一定数いるので、Rubyインタプリタもあとからインストールしました。

  3. あとでインストールしたライブラリ
    個人的にJupyterNotebookではなくJupyterLabを使いたかったので、別途インストールしました。

  4. Python

    • JupyterLab
    • PyMySQL

iruby、pry、cztopはrubyをJupyter上で使用するために必要なめ、別にインストール

  • Ruby
    • iruby
    • pry
    • cztop
    • Daru

mysql

1.イメージ:mysql:5.7

data volume

  1. イメージ: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でできそうだからあとで挑戦してみようかな・・