Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Docker Composeを用いたJupyter Lab開発環境構築
Search
Kasai Kou
March 01, 2022
Technology
0
270
Docker Composeを用いたJupyter Lab開発環境構築
LT会の登壇資料です.
Kasai Kou
March 01, 2022
Tweet
Share
More Decks by Kasai Kou
See All by Kasai Kou
Dev Containers ことはじめ - 失敗から学ぶ開発環境運用法
streamwest1629
0
17k
布教Git
streamwest1629
0
1.3k
はじめてのTerraform
streamwest1629
0
210
かさいさんの旅路
streamwest1629
0
110
今年の総括とコミュニティ
streamwest1629
0
63
1on1自己紹介スライド
streamwest1629
0
550
クリーンアーキわからんかった人のためのオニオンアーキテクチャ
streamwest1629
1
28k
Other Decks in Technology
See All in Technology
EM完全に理解した と思ったけど、 やっぱり何も分からなかった話 / EM Night Fukuoka #1
hirutas
0
280
The AI Revolution Will Not Be Monopolized: Behind the scenes
inesmontani
PRO
1
160
データベース02: データベースの概念
trycycle
0
180
Babylon.jsと色々なものを組み合わせる:ブラウザのAPIやガジェットや2D描画ライブラリなど / Babylon.js 勉強会 vol.3
you
PRO
0
160
EMとして2023年度に頑張ったこと / What we did well in FY2023 as a EM
pauli
1
210
今年のRubyKaigiはProfiler Year🤘
osyoyu
0
340
今日からできる!簡単 .NET 高速化 Tips -2024 edition-
xin9le
7
3.6k
アクセス制御にまつわる改善 / Improving access control
itkq
0
590
2024春 注目のWeb系 OSS & SaaS 3選
makies
0
170
.NET Profiler in 2024.
kkamegawa
2
960
[新卒向け研修資料] テスト文字列に「うんこ」と入れるな(2024年版)
infiniteloop_inc
4
18k
LangSmith入門―トレース/評価/プロンプト管理などを担うLLMアプリ開発プラットフォーム
os1ma
5
700
Featured
See All Featured
Done Done
chrislema
178
15k
Fireside Chat
paigeccino
22
2.6k
Code Reviewing Like a Champion
maltzj
515
39k
Building Flexible Design Systems
yeseniaperezcruz
320
37k
The Invisible Side of Design
smashingmag
294
49k
Designing for humans not robots
tammielis
248
25k
The World Runs on Bad Software
bkeepers
PRO
61
6.7k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
79
43k
StorybookのUI Testing Handbookを読んだ
zakiyama
13
4.6k
It's Worth the Effort
3n
180
27k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
26
2.3k
We Have a Design System, Now What?
morganepeng
44
6.8k
Transcript
Docker Composeを用いた Jupyter Lab開発環境構築 Anacondaなんかに負けないぞい! 千葉工業大学 機械電子創成工学科B2 川西浩嗣
この10分の流れ 1. 自己紹介 2. なんでDockerで 機械学習なのか 3. Compose is 何
4. Docker Compose の基本的な構成 5. Dockerと ボリューム 6. DockerとGPU (時間が余れば実際にコード少し読みたい)
自己紹介 行動の指針 「褒められるのが すきなだけです」 かさいさん(川西浩嗣) Twitter, Zenn: streamwest1629 Github: streamwest-1629
圧倒的Gopher SQLや Dockerなど バックエンドが多い(今現在) この間 GCI 2021 Winter を修了し,機械学習初学者に! AWS,はじめました
なんでDocker で 機械学習 なのか
Dockerは 機械学習以外でも 使える ! Dockerはコンテナ単位で 実行環境を管理するサービス 使用場面が豊富!! SQLなどのサーバー構築に! ビルド・開発環境に! AWSなどのIaaSで使用可能!
ローカル環境汚しません!!
Dockerfileで環境管理がしやすい! コードベースな Dockerfileを用いて 環境構築をする 環境の 確認・変更・共有が 簡単! Githubで 環境が管理できるのすごい!
ところで, このLTのテーマ は何? ←かわいい
Docker Composeを用いた Jupyter Lab開発環境構築 Anacondaなんかに負けないぞい! 千葉工業大学 機械電子創成工学科B2 川西浩嗣
Compose is 何?
Compose is … `a tool for running multi-container applications on
Docker` (Github(docker/compose)より引用) 複数コンテナの 実行管理を簡単に行うツール dockerに内包されました🎉 > docker compose build > docker compose up
機械学習で複数コンテナ 使わないよね? それはそう
Dockerはむずかしい Dockerfileはあくまで環境構築ファイル Composeで実行設定を記述(YAML形式) Compose 使わなくても できるけれど... 実行設定はすべて コマンド引数で 指定することに
Docker Composeの 基本的な構成 ←かわいい
今回の結論 docker-compose.yml (Dockerfile)
今回の結論 docker-compose.yml (Dockerfile) コンテナのビルド 手順を記述 コンテナのビルド・ 実行時の設定を記述
Dockerfileには何を 書くのか ベースイメージを指定 (今回はnvidia/cuda) FROM: ベースイメージを指定 ENV: 環境変数を指定 RUN: コマンドを実行
(apt-getなど) WORKDIR:実行ディレクトリを指定 ADD: ローカルからファイルコ ピー ローカルから jupyter.txtをコピーし てpipインストール
docker-compose.y mlには何を書くのか jupyterlabという名前の サービス(コンテナ)を 定義 ${KEYNAME}とする ことで,同階層の.envの 値と置換する
Dockerfile, docker-compose.ymlのドキュメント オリジナル https://docs.docker.com/reference/ 日本語ドキュメント(極端な遜色ない) https://matsuand.github.io/docs.docker.jp.onthefly/ref erence/
ところで Dockerfileを使って環境構築 するなら, コンテナ実行中の データは?
コンテナ実行中のデータ保存 コンテナは常に同一環境を提供するために, 実行中のファイル変更は無視される データの 永続化 ボリューム (バインドマウント) が必要
Docker と ボリューム ←かあいい
コンテナ実行中のデータ保存 コンテナは常に同一環境を提供するために, 実行中のファイル変更は無視される データの 永続化 ボリューム (バインドマウント) が必要 ボリュームはディレクトリ単位
バインドマウントの 定義方法 バインドマウント 永続化のうち,保存先が ローカルのファイルシステムのもの ボリューム: Dockerが管理している保存領域で永続化する データ同期っぽい イメージ
ボリュームと バインドマウント コンテナ視点ではどちらも永続性 のあるだけの単なるディレクトリ
バインドマウントの 定義方法 docker-compose.yml での定義がすごく簡単! `<ローカルの相対/絶対パス>:<コンテナ内の絶対パス>` 相対パスのときは .(ドット)から始める
バインドマウントの 定義方法 docker-compose.yml での定義がすごく簡単! `<ローカルの相対/絶対パス>:<コンテナ内の絶対パス>` docker-compose.yml のあるローカルのディレクトリを /workspace にマウント
永続化の使い方 Jupyter設定 Jupyter ノートブック - ローカルのGitリポジトリをバインドマウント データセット - GoogleドライブやMEGAなどの ローカルのファイル同期ソフトで共有
- AWS S3などのクラウドストレージサービスで共有
Docker と GPU ←きゃわわ
DockerとGPU 昨年12月にDockerがWSL2のGPUサポートに 正式対応🎉 NVIDIAによれば, 速度は ‘near-native’ 対応バージョン - Windows 11
- Windows 10 21H2~
GPU利用コンテナの作り方 nvidiaの出している公式ベースイメージ を使用したDockerfileを作る (ubuntuベース,楽をしたいだけ)
GPU利用コンテナの作り方 あとは,こんな感じで docker-compose.yml に書いておけばOK (ほぼ定型文)
最後に宣伝 作業部屋Discordサーバー (このBot, ボイスチャットでしゃべるんです...) ミュート管理や時間管理,休憩中の雑談部屋の部屋 割りを行うBotが24時間体制で運営しています 気軽に声をかけてください🥺!!!
Docker Composeを用いた Jupyter Lab開発環境構築 Anacondaなんかに負けないぞい! ありがとうございました