2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

JupyterでDockerカーネル(Python)を選択できるようにするレシピ

Posted at

はじめに

JupyterLabを使うとき、いろんな環境で使いたいなあなんて思ってました。そのために、DockerにJupyterLabを入れて起動していたのですが、そもそもJupyterのカーネルで、Dockerのカーネルを選択できれば便利ではないか?と思って、どうやればいいか調べてみました。
この設定をすることで、お好きなDockerイメージのカーネルでJupyterを起動できるようになります。自分用にまとめておこうと思ったのですがKaggleのGPUのDockerイメージのカーネルを追加してみたので、KagglerでDeepLearningをする人にもおすすめできそうだなあと思って、Qiitaに記事を書いておくことにしました。こんな感じでKaggleのイメージのカーネルを選べます!

image.png

実行環境

  • Ubuntu: 20.04
    • MacとかWindowsでも本質は同じだと思います
  • Docker: 20.10.10
  • JupyterLab: 3.2.3
    • 多分JupyterNotebookだけでもいいはず。
  • NVIDIAドライバ: 450.156.00
    • GPUを使用しない場合は不要
  • NVIDIA Container Toolkit: 1.5.1-1
    • GPUを使用しない場合は不要

設定手順

Dockerのカーネルをjupyterに追加

まず、JupyterLabのインストール先を確認します。特に自分で指定していない場合は、~/.local/以下のはずです。

インストール先の階層を辿っていくとkernelsというディレクトリがあるので、そこに作成したいカーネルごとにディレクトリを作成します。

cd JupyterLabのインストール先/share/jupyter/kernels
mkdir kaggle_v106
cd kaggle_v106

これでJupyterLabのインストール先/share/jupyter/kernels/kaggle_v106というディレクトリが作成されて、作成したkaggle_v106がカレントディレクトリとなっているはずです。kernel.jsonというファイルを新規作成します。

touch kernel.json

そしたら、お好みのエディタでこのファイルを開いて、内容を以下の通りにしてください。

{
 "argv": [
  "/usr/bin/docker",
  "run",
  "--network=host",
  "--gpus",
  "all",
  "-v",
  "{connection_file}:/connection-spec",
  "gcr.io/kaggle-gpu-images/python:v106",
  "python",
  "-m",
  "ipykernel_launcher",
  "-f",
  "/connection-spec"
 ],
 "display_name": "kaggle:v106",
 "language": "python"

必要に応じて以下の変更を加えてください。

GPUを使用しない場合は次の記述は不要です。

  "--gpus",
  "all",

他のコンテナを使用したい場合は、次の記述を変更してください。ただしそのコンテナにはipythonとipykernelがインストールされている必要があります。

  "gcr.io/kaggle-gpu-images/python:v106",

お好きな表示名に変えてください。

 "display_name": "kaggle:v106",

アイコンを変える

カッコよくJupyter上の表示でアイコンを表示させたい人はlogo-32x32.pnglogo-64x64.pngというロゴ画像ファイルを用意してください。解像度はそれぞれ32x32、64x64としてください。今回の例ではKaggleのアイコンを使用しています。

以上でJupyterから使えるようになってるはずです!

備考

jupyterlabを起動するユーザはdockerコマンドを使える必要があります。従ってdockerグループに属している必要があります。

さいごに

もっと詳しく書いてほしいとか、こうするにはどうしたらいいかとか要望がありましたらコメント頂けますと幸いです。最大限対応いたします!

参考

DockerでGPUを使う準備ができていない人へ

NVIDIAドライバやNVIDIA Container Toolkitをインストールしておいてください。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?