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
260
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
200
かさいさんの旅路
streamwest1629
0
110
今年の総括とコミュニティ
streamwest1629
0
63
1on1自己紹介スライド
streamwest1629
0
540
クリーンアーキわからんかった人のためのオニオンアーキテクチャ
streamwest1629
1
28k
Other Decks in Technology
See All in Technology
Kubernetesでアプリの安定稼働と高頻度のアップデートを両立するためのプラクティス / Best Practices for Applications on Kubernetesto Achieve Both Frequent Updates and Stability
hhiroshell
10
2.9k
20240416_devopsdaystokyo
kzkmaeda
1
160
自動生成を活用した、運用保守コストを抑える Error/Alert/Runbook の一元集約管理 / Centralized management of Error/Alert/Runbook to minimize operational costs using automated code generation
biwashi
9
1.9k
XSS using dirty Content Type in cloud era
flatt_security
2
1k
オブザーバビリティの Primary Signals
onk
PRO
0
520
クラウドサインにおけるプロダクトマネージャーの役割と開発プロセス / 20240410_cloudsign-PdM
bengo4com
1
660
Databricksを活用してDELISH KITCHENのレシピレコメンドを開発した話
furu8
0
240
Databricks:『生成AI World Cup』のご案内
databricksjapan
1
110
AWS パートナー企業でテクニカルサポートに従事して2年経ったので思うところをまとめてみた
kazzpapa3
3
1.3k
**強い**エンジニアのなり方 - フィードバックサイクルを勝ち取る / grow one day each day
soudai
58
17k
普段有償でサポート業務をしているCSAが技術知見を無料で公開する理由
07jp27
1
610
Databricks におけるデータエンジニアリング
databricksjapan
0
360
Featured
See All Featured
From Idea to $5000 a Month in 5 Months
shpigford
377
45k
Being A Developer After 40
akosma
56
580k
The Cost Of JavaScript in 2023
addyosmani
13
3.8k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
114
18k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
12
1.5k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
8
8.3k
Rails Girls Zürich Keynote
gr2m
91
13k
BBQ
matthewcrist
79
8.7k
The Invisible Customer
myddelton
114
12k
Infographics Made Easy
chrislema
237
18k
Why Our Code Smells
bkeepers
PRO
330
56k
Raft: Consensus for Rubyists
vanstee
130
6.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なんかに負けないぞい! ありがとうございました