ごはんと飲み物は紙一重

このブログはモチベーションアップのために情報工学関連について記事を更新していこうと思います。三日坊主にならないよう頑張ります。

DockerでPythonの開発環境を構築してみたくなったお話

タイトルの通りですが、改めてpyenv + conda の仮想環境による開発も悪くないなと思ったものの、docker使えるほうがよりチーム開発とかで役に立ちそうであったり、なにより立ち上げたり潰したりが楽と聞いて、そろそろ行動に移さないとなと思ってメモ代わりに記事にすることに。

環境構築環境

  • Mac OSX Sierra 10.12.6
  • fish shell 2.6.0
  • Python
    • pyenv + miniconda + condaによる仮想環境

docker の インストール

brew cask install docker

でインストール。まぁまぁ時間がかかる。インストール後は起動して設定をしてもらう。

fish から docker コマンドを実行できるようにする。

次にfish shellを使っていたためdockerコマンドが通常ならうまく動かないので、

をつかってdockerを使えるようにする。

fisher docker-completion

を実行して入れる。するとfishでもdockerコマンドが使えるようになる。やったね。

docker でコンテナ作成と jupyter の立ち上げ

あとはdockerのイメージを入れてみるだけ。今回はtestとしてdockerからjupyterを立ち上げてみることに。

docker pull jupyter/datascience-notebook
docker images jupyter/datascience-notebook

容量は5gbくらいでなかなか大きいのでpullする際にはご注意を。

さぁここから起動しようとするも詰まってしまった。

docker run -d --name jupyter-p 8888:8888 jupyter/datascience-notebook

1回目はうまくいくものの2回目以降エラーを吐いてしまう。どうやら同じコンテナを立ち上げようとして衝突しているみたい。そりゃコンテナ作ったのに同じの作ろうとしたら怒るわな。

というわけで改めてコマンドを調べなおして、コンテナを起動する。

docker start jupyter

これでコンテナが起動する。その上で、

docker exec -it jupyter /bin/bash/

すると無事中へ。中では環境構築されたコンテナがお出迎え。コンテナ内にて

jupyter notebook

すると、自分の環境でjupyterが立ち上がる。

f:id:ST_ha1cyon:20171003234659p:plain

とりあえず起動することができたので一段落。一通りの流れがなんとなくわかったので、後はローカル環境とのディレクトリの共有であったりもっと細かいところを探っていこうと思います。環境構築は闇深いけどできたときの喜びもひとしおですな。

参考サイト

https://unicorn.limited/jp/item/347
https://qiita.com/m-shimao/items/c83472850a69797d9679