12
11

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.

Docker コンテナ上の Jupyter Notebook を VSCode Remote Development で編集する

Last updated at Posted at 2019-12-06

創薬 Advent Calendar (DRY side) 6日目記事

(コンテナ上の) Jupyter Notebook で RDKit をいい感じに使いたい

昨年から今年にかけて 創薬レイドバトル と称した創薬スクリーニングイベントを開催した際、参加の敷居を下げるため、達人 @yamasakihraziのDocker-composeで創薬レイドバトル2018用のJupyter Notebookからアクセスできる化合物データベース を用意してくれた。数百万化合物あるライブラリを簡便に扱える大変便利な環境だ。初心者もすぐにコンテナ環境上で RDKit を使い始めることができる。Docker for Windows を使えば Windows 上でも実行可能だ。

一方、今年の 6 月頃、VSCode に Remote Development 機能が実装され、コンテナに接続して開発できるようになった上、10 月には VSCode の Jupyter サポートも加わった。つまり、コンテナ上の Jupyter 環境にホスト OS 側の VSCode から繋げるようになった。上記の創薬用コンテナ環境の Jupyter Notebook も VSCode からいい感じに使うことができる。ただし初見だと躓いたところがあるので、立ち上げ方を簡単にまとめておく。

手順

1. コンテナ立ち上げ

raziのDocker-composeで創薬レイドバトル2018用のJupyter Notebookからアクセスできる化合物データベース 環境はセットアップ済みとして、
image.png
コンテナを立ち上げておく。(創薬レイド用の当該環境に限らず、Jupyter の入っている任意のコンテナで読み替えて頂いてよい)

2. VSCode からコンテナに Remote Development 接続

左の Remote Explorer アイコンから
image.png
立ち上がっているコンテナを選択
image.png
繋ぐ
image.png
繋がる
image.png

3. コンテナにアタッチした VSCode に extension をインストール

ホスト OS 上の VSCode 本体に Python 拡張がインストールされていても、コンテナにアタッチして起動した VSCode 内ではそれは認識されないので、新たにインストールする。
image.png
左の Extensions アイコンから
image.png
Python 拡張を新たにインストールする。
image.png
image.png
リロードする。
image.png
入った。

4. コンテナ上の Jupyter に接続する

上記のコンテナ起動時に自動的に立ち上がっている Jupyter server に繋げられるかと思うと繋げられない。(存在しないパスワードを要求される)
image.png
コマンドパレットから、
image.png
URI 指定で Jupyter server を指定する。ここで与える URI は、コンテナ内のターミナルで新たに jupyter notebook を立ち上げてしまって、その URI を入れれば接続できる。
image.png
すると、コンテナ内のカーネルを選べるようになるので、選択する。

5. 使ってみる

image.png
補完も効いて、いい感じになった!

12
11
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
12
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?