VOOZH about

URL: https://qiita.com/yaiwase/items/3a58313e028315004a56

⇱ ローカル環境をよごさずに Jupyter で python コードが動く環境を手軽につくる方法 #Python - Qiita


👁 Image
85

Go to list of users who liked

109

Share on X(Twitter)

Share on Facebook

Add to Hatena Bookmark

More than 5 years have passed since last update.

@yaiwase(岩瀬 靖彦)in👁 Image
株式会社MIXI

ローカル環境をよごさずに Jupyter で python コードが動く環境を手軽につくる方法

85
Last updated at Posted at 2017-06-07

概要

  • ローカル環境をよごさずに、python コードが動かせる状態 をつくります

  • 所要時間 5分 くらい

  • 記事では macbook 上での構築を想定していますが、サーバで起動させブラウザアクセスする場合は localhost を任意のサーバに読み替えて実行してください(かつブラウザアクセス可能なポートを設定します)

Docker のインストール

  • Get Docker for mac をクリックして Docker.dmg を取得します
  • Docker.dmg を起動してmac上にインストールします

Anaconda の docker image でコンテナ起動

Terminal を起動

必要なdocker image をダウンロード

お好みの docker image を取得します、ここでは anaconda3 が入るイメージを使います
https://hub.docker.com/r/continuumio/anaconda3/~/dockerfile/

$docker pull continuumio/anaconda3
Using default tag: latest
latest: Pulling from continuumio/anaconda3
8ad8b3f87b37: Pull complete 
e8b8d30f7444: Pull complete 
...
Status: Downloaded newer image for continuumio/anaconda3:latest

jupyter notebook が参照する作業ディレクトリを作成

$mkdir -p $HOME/jupyter-notebook/notebooks

Docker コンテナ起動

$docker run \
 -d -i -t \
 -p 8888:8888 \
 --name jupyter-notebook \
 -v $HOME/jupyter-notebook/notebooks:/opt/notebooks \
 continuumio/anaconda3 \
 /bin/bash -c "/opt/conda/bin/conda install jupyter -y --quiet && /opt/conda/bin/jupyter notebook --notebook-dir=/opt/notebooks --ip='*' --no-browser --allow-root"

-p 8888:xxxx JupyterNotebookのデフォルト 8888 で都合の悪い場合は、別のポート xxxx に置き換えてください

コンテナの状態確認

$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
96f9690341ae continuumio/anaconda3 "/usr/bin/tini -- ..." 6 seconds ago Up 5 seconds 0.0.0.0:8888->8888/tcp jupyter-notebook

JupyterNotebook をブラウザから開く

コンテナ上で起動している JupyterNotebook のURLを取得

docker logs コマンドで取得したログに、JupyterNotebook にアクセスするためのトークンつきURLが記録されているので、それを取得します

$docker logs jupyter-notebook

Fetching package metadata .........
Solving package specifications: .
...
 
 Copy/paste this URL into your browser when you connect for the first time,
 to login with a token:
 http://localhost:8888/?token=a5b5211197b4d9b2f8f93ee73c085786039486369c5bcbec <<<<---- here

アクセスURLをブラウザで開く

取得したURLをブラウザで開きます(ポート変更してる場合は指定の port に読み替えます)

http://localhost:8888/?token=a5b5211197b4d9b2f8f93ee73c085786039486369c5bcbec
👁 notebook

ひらきました
まだ何もコードはありません

コード実行

お好みのコードを作業ディレクトリに配置します
例として ゼロから作る Deep Learning のリポジトリgit clone してきます

$cd $HOME/jupyter-notebook/notebooks
$git clone https://github.com/oreilly-japan/deep-learning-from-scratch.git
Cloning into 'deep-learning-from-scratch'...
remote: Counting objects: 322, done.
remote: Total 322 (delta 0), reused 0 (delta 0), pack-reused 322
Receiving objects: 100% (322/322), 4.87 MiB | 944.00 KiB/s, done.
Resolving deltas: 100% (160/160), done.
Checking connectivity... done.

JupyterNotebook 上にすぐ反映されます

👁 JupyterNote からみえます

(取得してきたファイルはテキストファイルなのでそのまま実行はできません)
Jupyter 画面上の New プルダウンから Python3 などの実行ファイルを作成して、実行したいコードを切り貼りするなどして自由にコードを動かしてください

👁 自由にコードを実行します

以上です! :D

Docker コンテナがいらなくなったら

docker stop, docker rm してコンテナを破棄しましょう :)

$ docker ps -a 
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
96f9690341ae continuumio/anaconda3 "/usr/bin/tini -- ..." 6 seconds ago Up 5 seconds 0.0.0.0:8888->8888/tcp jupyter-notebook

$ docker stop 96f9690341ae
$ docker rm 96f9690341ae
85

Go to list of users who liked

109
0

Go to list of comments

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
85

Go to list of users who liked

109