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
280
Docker Composeを用いたJupyter Lab開発環境構築
LT会の登壇資料です.
Kasai Kou
March 01, 2022
Tweet
Share
More Decks by Kasai Kou
See All by Kasai Kou
社内LLMハッカソン2024発表資料
streamwest1629
0
440
ひとりぐらしになってからかわったこと - ゆるゆるりとして、けれども楽しく忙殺される日々
streamwest1629
1
82
Dev Containers ことはじめ - 失敗から学ぶ開発環境運用法
streamwest1629
0
19k
布教Git
streamwest1629
0
1.5k
はじめてのTerraform
streamwest1629
0
230
かさいさんの旅路
streamwest1629
0
120
今年の総括とコミュニティ
streamwest1629
0
68
1on1自己紹介スライド
streamwest1629
0
600
クリーンアーキわからんかった人のためのオニオンアーキテクチャ
streamwest1629
1
29k
Other Decks in Technology
See All in Technology
成長期に歩みを止めないための創業期の開発文化形成
mayah
6
420
開発生産性をむしろ向上させる セキュリティパートナーの作り方 / Dev Productivity Con 2024
flatt_security
0
360
推薦システムを本番導入する上で一番優先すべきだったこと~NewsPicks記事推薦機能の改善事例を元に~
morinota
0
120
Classmethod Odyssey 登壇資料
yamahiro
0
390
DevIO2024_レガシー運用からの脱却 -クラウド活用の実践事例とベストプラクティス-
jun2882
0
210
What if...? 처음부터 다시 LLM 어플리케이션을 개발한다면
huffon
0
1k
ペパボのオブザーバビリティ研修2024 説明資料
kesompochy
0
1.1k
20240717_イケコパ代表Copilot_in_Teams会社でこう使ってます
ponponmikankan
2
430
初中級者用如何使用backlog -VALE TUDOEDITION-
in0u
0
140
「我々はどこに向かっているのか」を問い続けるための仕組みづくり / Establishing a System for Continuous Inquiry about where we are
daitasu
0
170
AIアシスタントの活用で品質の向上と開発ワークフローのスピードアップ
nagix
1
190
サービスの持続的な成長と技術負債について
siva_official
PRO
10
4.4k
Featured
See All Featured
Being A Developer After 40
akosma
72
580k
KATA
mclloyd
20
13k
Optimising Largest Contentful Paint
csswizardry
18
2.6k
Faster Mobile Websites
deanohume
303
30k
The Brand Is Dead. Long Live the Brand.
mthomps
52
36k
How to Think Like a Performance Engineer
csswizardry
4
590
Fontdeck: Realign not Redesign
paulrobertlloyd
79
5.1k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
662
120k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
24
1.8k
GraphQLの誤解/rethinking-graphql
sonatard
59
9.6k
The Power of CSS Pseudo Elements
geoffreycrofte
64
5.2k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
20
7.2k
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なんかに負けないぞい! ありがとうございました