LoginSignup
1
2

More than 5 years have passed since last update.

Docker for WindowsでJupyter(公式よりは軽く)

Posted at

昨日はXした

  • コンソールさわるの飽きた
  • Windows側でコード書きたい
  • デーモンとして動いてて欲しい

それjupyterで

  • え、それWindowsとか関係な(ry
  • 昨日はPython公式が700MBでがっかりしたけど
  • 今日はJupyter公式が700MBで絶望した

できた

  • 注意:セキュリティ無視、ポート開放に気を付けてください
  • 前提の環境は昨日Xしたのと同じ
    • Docker for Windows のみ

コンセプト

  • Ubuntu(ベース80MBくらい?)
  • Python3(標準ではいってる)
  • Chainer v4.0.0(stableなやつ)
  • 340MBくらいになった
    • もっとまじめに小さくするならtiniとか入れるのかな
    • あとUbuntuでなくAlpineにするか

成果物

  • つぎの3ファイルを同じフォルダにおいてjupyter_up.batを叩く
docker-compose.yml
version: '3'
services:
  jupyter:
    build: .
    volumes:
      - C:\data:/data
    ports:
      - "8888:8888"
Dockerfile
FROM ubuntu

RUN apt-get update -y \
    && apt-get install -yq --no-install-recommends \
    python3-setuptools \
    python3-pip \
    && rm -rf /var/lib/apt/lists/* /var/cache/apt/archives/* \
    && python3 -m pip install --upgrade pip \
    && python3 -m pip install --no-cache-dir wheel jupyter matplotlib numpy==1.13 chainer==4.0.0

EXPOSE 8888

CMD ["jupyter", "notebook", "--allow-root", "--no-browser", "--NotebookApp.token=''", "--ip=0.0.0.0"]
jupyter_up.bat
pushd %~dp0
docker-compose up -d --build
popd
timeout 1
start http://localhost:8888/

お約束のMNIST

  • Windows側でC:/data以下にtrain_mnist.pyを取得しておく
  • ブラウザでdata以下のフォルダを辿りtrain_mnist.pyがあるフォルダに移動する
  • JupyterのメニューNew -> Python3でnotebookをつくる
notebook_Codeセル
%run -i train_mnist.py
notebook_Markdownセル_Code実行後に確認用
- accuracy
<img src="result/accuracy.png">
- loss
<img src="result/loss.png">
  • うえのをipynbに保存したらこう
train_mnist.ipynb
{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "scrolled": false
   },
   "outputs": [],
   "source": [
    "%run -i train_mnist.py"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- accuracy\n",
    "<img src=\"result/accuracy.png\">\n",
    "- loss\n",
    "<img src=\"result/loss.png\">"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}

おわり

1
2
0

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
1
2