SlideShare uma empresa Scribd logo
1 de 17
Docker Meetup Tokyo #6
Dockerで
Jupyter使おうぜ
谷沢 智史(株式会社ボイスリサーチ)
誰?
谷沢 智史
◦ 株式会社ボイスリサーチ エンジニア
◦ GitHub/Twitter: @yacchin1205
昔: オンラインゲームとか映像コンテンツとか
今: クラウド運用とかロボットとか
国立情報学研究所(NII)でプライベートクラウドの運用支援
Literate Computing
for Reproducible Infrastructure
NIIにおけるベアメタルクラウド上の環境構築/運用に…
Jupyter(旧IPython) + Ansible
実行コード
説明
実行結果
をNotebookとして、
ひとまとめに記述
Literate Computing
for Reproducible Infrastructure
Notebook中にAnsible呼び出しを記述/コードの前後に説明を書いたり
Literate Computing
for Reproducible Infrastructure
見出しをつけていくことで長い手順もわかりやすくしたり
Literate Computing
for Reproducible Infrastructure
操作の証跡になる
繰り返しおこなうものは手順書として洗練していく
Literate computing for reproducible infrastructure - our basic practices
in a video capture -
◦ http://www.slideshare.net/nobu758/literate-computing-for-reproducible-
infrastructure-our-basic-practices-in-a-video-capture
Jupyter
簡単にお試しできるJupyter Notebook環境
https://tmpnb.org
Jupyter
Mar 2 07:43:46 datalab-deploy-... startupscript: Step creating network datalab succeeded.
Mar 2 07:43:47 datalab-deploy-... startupscript: Creating Datalab application...
…
Mar 2 07:43:47 datalab-deploy-... startupscript: - Build (and pull) docker container
Mar 2 07:43:48 datalab-deploy-... startupscript: Sending build context to Docker daemon
6.656 kB#015#015
Mar 2 07:43:48 datalab-deploy-... startupscript: Sending build context to Docker daemon #015
Mar 2 07:43:48 datalab-deploy-... startupscript: Step 0 : FROM gcr.io/cloud_datalab/datalab
Mar 2 07:43:48 datalab-deploy-... startupscript: latest: Pulling from
gcr.io/cloud_datalab/datalab
Mar 2 07:43:48 datalab-deploy-... startupscript: 77e39ee82117: Pulling fs layer
Mar 2 07:43:48 datalab-deploy-... startupscript: 5eb1402f0414: Pulling fs layer
…
Mar 2 07:44:24 datalab-deploy-... startupscript: 557148c7feb7: Pull complete
Mar 2 07:44:24 datalab-deploy-... startupscript: Digest:
sha256:0353b7d5c629162465bb8b98c8838e190ad73d03c052e4dbff1c2274e3e78645
Mar 2 07:44:24 datalab-deploy-... startupscript: Status: Downloaded newer image for
gcr.io/cloud_datalab/datalab:latest
Mar 2 07:44:24 datalab-deploy-... startupscript: ---> 557148c7feb7
Mar 2 07:44:24 datalab-deploy-... startupscript: Successfully built 557148c7feb7
Mar 2 07:44:24 datalab-deploy-... startupscript: Step build container succeeded.
…
インフラのオペレーションで使うには・・・
Privateな環境で動かしたい
Jupyter
Decoupled Two-Process model
Client Kernel
Web
Notebook
Console
Qt Console
Python2
Kernel
Python3
Kernel
Bash
Kernel
...
ZeroMQ
Client Kernel
Web
Notebook
Console
Qt Console
Python2
Kernel
Python3
Kernel
Bash
Kernel
...
ZeroMQ
Jupyter
いろいろなKernel
https://github.com/ipython/ipython/wiki/IPython-kernels-for-other-languages
Client Kernel
Web
Notebook
Console
Qt Console
Python2
Kernel
Python3
Kernel
Bash
Kernel
...
ZeroMQ
Jupyter
ツールもいろいろ
Client Tools
Jupyter
Notebook Extensionsもいろいろ
UI周りもどんどん更新 ... 構築・維持とかやってられない
Client Kernel
Web
Notebook
Console
Qt Console
Python2
Kernel
Python3
Kernel
Bash
Kernel
...
ZeroMQ
Extension
Extension
Extension
docker-stacks
https://github.com/jupyter/docker-stacks
docker-stacksをベースに必要ツールを
インストール・イメージ化すれば管理が楽!
運用者ごとにJupyter
講義用環境の構築 ... 講師ごとに環境を用意したい
tmpnbが使えるんじゃね?
tmpnb
一時的なJupyter Notebook環境の生成をDockerで実現
https://github.com/jupyter/tmpnb
tmpnb - Quick start
1. tmpnb, configurable-http-proxy コンテナを起動する
◦ 勝手にJupyter Notebookが起動される
2. http://docker-host:8000/ を開く
いろいろカスタマイズできる!
docker pull jupyter/minimal-notebook
export TOKEN=$( head -c 30 /dev/urandom | xxd -p )
docker run --net=host -d -e CONFIGPROXY_AUTH_TOKEN=$TOKEN --name=proxy 
jupyter/configurable-http-proxy 
--default-target http://127.0.0.1:9999
docker run --net=host -d -e CONFIGPROXY_AUTH_TOKEN=$TOKEN --name=tmpnb 
-v /var/run/docker.sock:/docker.sock jupyter/tmpnb
まとめ
ツール盛り合わせフロント環境の管理・運用は
Dockerじゃないとできない
運用の手順や証跡管理に、Jupyterどうっすか?

Mais conteúdo relacionado

Mais procurados

パフォーマンス計測Ciサービスを作って得た知見を共有したい
パフォーマンス計測Ciサービスを作って得た知見を共有したいパフォーマンス計測Ciサービスを作って得た知見を共有したい
パフォーマンス計測Ciサービスを作って得た知見を共有したい
zaru sakuraba
 

Mais procurados (20)

Dockerが抱えるネットワークの課題
Dockerが抱えるネットワークの課題Dockerが抱えるネットワークの課題
Dockerが抱えるネットワークの課題
 
KubernetesでGPUクラスタを管理したい
KubernetesでGPUクラスタを管理したいKubernetesでGPUクラスタを管理したい
KubernetesでGPUクラスタを管理したい
 
Docker入門 - 基礎編 いまから始めるDocker管理
Docker入門 - 基礎編 いまから始めるDocker管理Docker入門 - 基礎編 いまから始めるDocker管理
Docker入門 - 基礎編 いまから始めるDocker管理
 
Moby Project (May 25, 2017, Tokyo)
Moby Project (May 25, 2017, Tokyo)Moby Project (May 25, 2017, Tokyo)
Moby Project (May 25, 2017, Tokyo)
 
コンテナ運用基盤 with OpenShift
コンテナ運用基盤 with OpenShiftコンテナ運用基盤 with OpenShift
コンテナ運用基盤 with OpenShift
 
Jupyter notebook
Jupyter notebookJupyter notebook
Jupyter notebook
 
DevOpsにおける組織に固有の事情を どのように整理するべきか
DevOpsにおける組織に固有の事情を どのように整理するべきかDevOpsにおける組織に固有の事情を どのように整理するべきか
DevOpsにおける組織に固有の事情を どのように整理するべきか
 
Ss systemdのwslディストロを作る kernelvm探検隊online part 3
Ss systemdのwslディストロを作る kernelvm探検隊online part 3Ss systemdのwslディストロを作る kernelvm探検隊online part 3
Ss systemdのwslディストロを作る kernelvm探検隊online part 3
 
Docker で Deep Learning
Docker で Deep LearningDocker で Deep Learning
Docker で Deep Learning
 
真Drone入門
真Drone入門真Drone入門
真Drone入門
 
はじめての CircleCI
はじめての CircleCIはじめての CircleCI
はじめての CircleCI
 
Docker入門
Docker入門Docker入門
Docker入門
 
高速にコンテナを起動できるイメージフォーマット
高速にコンテナを起動できるイメージフォーマット高速にコンテナを起動できるイメージフォーマット
高速にコンテナを起動できるイメージフォーマット
 
vscode pipenv docker
vscode pipenv dockervscode pipenv docker
vscode pipenv docker
 
KubernetesとOpenShiftの話
KubernetesとOpenShiftの話KubernetesとOpenShiftの話
KubernetesとOpenShiftの話
 
今時のDev opsの取り組み事例集
今時のDev opsの取り組み事例集今時のDev opsの取り組み事例集
今時のDev opsの取り組み事例集
 
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドBuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
 
パフォーマンス計測Ciサービスを作って得た知見を共有したい
パフォーマンス計測Ciサービスを作って得た知見を共有したいパフォーマンス計測Ciサービスを作って得た知見を共有したい
パフォーマンス計測Ciサービスを作って得た知見を共有したい
 
OCIランタイムの筆頭「runc」を俯瞰する
OCIランタイムの筆頭「runc」を俯瞰するOCIランタイムの筆頭「runc」を俯瞰する
OCIランタイムの筆頭「runc」を俯瞰する
 
Dockerだけではないコンテナのはなし
DockerだけではないコンテナのはなしDockerだけではないコンテナのはなし
Dockerだけではないコンテナのはなし
 

Semelhante a DockerでJupyter使おうぜ

関数型言語ElixirのIoTシステム開発への展開
関数型言語ElixirのIoTシステム開発への展開関数型言語ElixirのIoTシステム開発への展開
関数型言語ElixirのIoTシステム開発への展開
Hideki Takase
 

Semelhante a DockerでJupyter使おうぜ (20)

Jupyterで運用やってみた
Jupyterで運用やってみたJupyterで運用やってみた
Jupyterで運用やってみた
 
Tokyo r#93発表資料
Tokyo r#93発表資料Tokyo r#93発表資料
Tokyo r#93発表資料
 
14対話bot発表資料
14対話bot発表資料14対話bot発表資料
14対話bot発表資料
 
K8sjp11 KubeCon-Recap Multi-Cluster Operations
K8sjp11 KubeCon-Recap Multi-Cluster OperationsK8sjp11 KubeCon-Recap Multi-Cluster Operations
K8sjp11 KubeCon-Recap Multi-Cluster Operations
 
DockerHubを活用してAnsibleのPlaybookを自動ビルドする
DockerHubを活用してAnsibleのPlaybookを自動ビルドするDockerHubを活用してAnsibleのPlaybookを自動ビルドする
DockerHubを活用してAnsibleのPlaybookを自動ビルドする
 
Dockerで.NET Core 3.0 GUIアプリを動かす話
Dockerで.NET Core 3.0 GUIアプリを動かす話Dockerで.NET Core 3.0 GUIアプリを動かす話
Dockerで.NET Core 3.0 GUIアプリを動かす話
 
Visual Studio による開発環境・プログラミングの進化
Visual Studio による開発環境・プログラミングの進化Visual Studio による開発環境・プログラミングの進化
Visual Studio による開発環境・プログラミングの進化
 
Docker Desktop WSL2 Backendで捗るWindows PCのコンテナ開発環境
Docker Desktop WSL2 Backendで捗るWindows PCのコンテナ開発環境Docker Desktop WSL2 Backendで捗るWindows PCのコンテナ開発環境
Docker Desktop WSL2 Backendで捗るWindows PCのコンテナ開発環境
 
Python & PyConJP 2014 Report
Python & PyConJP 2014 ReportPython & PyConJP 2014 Report
Python & PyConJP 2014 Report
 
皆さん!ふくてんが来ましたよ!!
皆さん!ふくてんが来ましたよ!!皆さん!ふくてんが来ましたよ!!
皆さん!ふくてんが来ましたよ!!
 
AI分野におけるコンテナオーケストレーションとは
AI分野におけるコンテナオーケストレーションとはAI分野におけるコンテナオーケストレーションとは
AI分野におけるコンテナオーケストレーションとは
 
2018 07-19dist
2018 07-19dist2018 07-19dist
2018 07-19dist
 
Python用ゲームエンジンPyxelで遊んでみた
Python用ゲームエンジンPyxelで遊んでみたPython用ゲームエンジンPyxelで遊んでみた
Python用ゲームエンジンPyxelで遊んでみた
 
KubeFlowでどこまでいける?
KubeFlowでどこまでいける?KubeFlowでどこまでいける?
KubeFlowでどこまでいける?
 
関数型言語ElixirのIoTシステム開発への展開
関数型言語ElixirのIoTシステム開発への展開関数型言語ElixirのIoTシステム開発への展開
関数型言語ElixirのIoTシステム開発への展開
 
Dockerを使ってみよう
Dockerを使ってみようDockerを使ってみよう
Dockerを使ってみよう
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
 
Python × Herokuで作る 雑談slack bot
Python × Herokuで作る 雑談slack botPython × Herokuで作る 雑談slack bot
Python × Herokuで作る 雑談slack bot
 
Docker Meetup tpkyo #30 kubecon recap
Docker Meetup tpkyo #30 kubecon recapDocker Meetup tpkyo #30 kubecon recap
Docker Meetup tpkyo #30 kubecon recap
 
20170527 inside .NET Core on Linux
20170527 inside .NET Core on Linux20170527 inside .NET Core on Linux
20170527 inside .NET Core on Linux
 

Mais de Satoshi Yazawa

Mais de Satoshi Yazawa (7)

Jupyterで手順再現!Elasticsearch構築・運用を実行可能ドキュメントで機械化してみた
Jupyterで手順再現!Elasticsearch構築・運用を実行可能ドキュメントで機械化してみたJupyterで手順再現!Elasticsearch構築・運用を実行可能ドキュメントで機械化してみた
Jupyterで手順再現!Elasticsearch構築・運用を実行可能ドキュメントで機械化してみた
 
ベアメタルクラウドの運用をJupyter NotebookとAnsibleで機械化してみた
ベアメタルクラウドの運用をJupyter NotebookとAnsibleで機械化してみたベアメタルクラウドの運用をJupyter NotebookとAnsibleで機械化してみた
ベアメタルクラウドの運用をJupyter NotebookとAnsibleで機械化してみた
 
dodaiのProvisioning周辺探訪 - dodai勉強会 #4
dodaiのProvisioning周辺探訪 - dodai勉強会 #4dodaiのProvisioning周辺探訪 - dodai勉強会 #4
dodaiのProvisioning周辺探訪 - dodai勉強会 #4
 
OpenStackとdodai - dodai勉強会 #1
OpenStackとdodai - dodai勉強会 #1OpenStackとdodai - dodai勉強会 #1
OpenStackとdodai - dodai勉強会 #1
 
NIIクラウドチームとDocker
NIIクラウドチームとDockerNIIクラウドチームとDocker
NIIクラウドチームとDocker
 
20120611 SC研究会
20120611 SC研究会20120611 SC研究会
20120611 SC研究会
 
20120518 SE勉強会
20120518 SE勉強会20120518 SE勉強会
20120518 SE勉強会
 

Último

Último (7)

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 

DockerでJupyter使おうぜ

Notas do Editor

  1. (タイトル)という題で発表させていただきます。
  2. ボイスリサーチの谷沢といいます。白いロボットの技術書とか書いているんですけど、最近は割と国立情報学研究所というところでクラウドの運用のお手伝いをやらせていただいてます。
  3. で、NIIでは、Literate Computing for Reproducible Infrastructureと銘打って、Jupyter、昔はIpythonといいましたが、これとAnsibleを組み合わせて、運用の作業をコード化しつつ、実行結果や説明もひとまとめのドキュメントとしても残して活用していくという試みをしています。
  4. Web UIベースで、個々のコードのすぐそばに経緯などもかけるので、あとでなんでこれやったんだっけ?みたいなことも割と少なくて済む気がします。
  5. 説明にはMarkdownが書けるので、必要な見出しを入れていくとか
  6. 詳しくはビデオなど公開していますので見てください。
  7. そんな感じで、もともとデータ分析みたいな部分で使われているJupyterをインフラ運用にも使ってみているわけです。 ぜひご存じない方はtmpnb.orgにアクセスしてみてください。Jupyter環境のお試しができます。 実はこれはDockerでNotebook環境を管理しています。
  8. JupyterはGoogle Cloud Platformのサービスにも組み込まれています。 実はCloud DataLabもDockerが使われていて、デプロイ時のログにもよく見る出力が流れていて熱いです。 自分たちのようなオペレーション用途で使ってみようとすると、その操作対象と同じ、Privateな環境で動かしたくなります。
  9. JupyterというかIPythonは、もともとWeb UIだけでなく、コマンドベースの対話環境みたいなものを実現するためのツールで、実行可能な言語もPythonには限りません。 基本的にはUI周りはClient, 処理はKernelとして分離されています。
  10. Kenr
  11. Kernelから、運用に必要なツールが実行できるようインストールしておいたり、
  12. Web UIが利用しやすいようにExtensionを追加したくなります。 しかもこれらはどんどんアップデートされていきます。