Docker + VisualStudio Code で快適な Jupyter 環境をつくる

VisualStudio Code

まず、全体の手順です

  1. Docker と VisualStudio Code がインストールされている環境で実行してください
  2. python:3.7環境の設計図をつくる
  3. 設計図からイメージを作成。コンテナを起動し、同時にライブラリなどをインストール
  4. そのコンテナにアタッチしたVSCodeで、拡張機能:Jupyter をインストール

python:3.7環境の設計図をつくる

“work”フォルダを作成し、そこからVSCodeを起動してください。

VSCodeのエディタで以下の2つのファイルを作成します。

ファイル名:docker-compose.yml

# docker-compose.yml

version: "3"
services:
  python:
    image: img-python37        # イメージの名前
    container_name: My-python  # コンテナの名前
    build:
      context: "./"
      dockerfile: "Dockerfile"

    volumes:
      - ./:/tmp/work/   #現在のフォルダをコンテナにマウント

    tty: true # コンテナを立ち上げた後、起動させたままにする
              # (このオプションを付けないと起動しても、すぐ停止してしまう)

 

ファイル名:Dockerfile

# Dockerfile
FROM python:3.7

RUN pip install -U numpy matplotlib pandas ipython ipykernel

# matplotlibで日本語を使うための設定
WORKDIR /
RUN curl -L  "https://moji.or.jp/wp-content/ipafont/IPAexfont/IPAexfont00401.zip" > font.zip \
    && unzip font.zip\
    && touch /usr/local/lib/python3.7/site-packages/matplotlib/mpl-data/fonts/ttf/ipaexg.ttf\
    && cp IPAexfont00401/ipaexg.ttf /usr/local/lib/python3.7/site-packages/matplotlib/mpl-data/fonts/ttf/ipaexg.ttf \
    && echo "font.family : IPAexGothic" >>  /usr/local/lib/python3.7/site-packages/matplotlib/mpl-data/matplotlibrc \
    && rm -r ./root/.cache 

※2022/02/23 日本語フォントのインストールを追加しました。

設計図からイメージを作成。コンテナを起動し、同時にライブラリなどをインストール

コマンドプロンプトを起動して、”work”フォルダに移動する。以下のコマンドを入力する

work> docker-compose up -d

 

そのコンテナにアタッチしたVSCodeで、拡張機能:Jupyter をインストール

  • VSCodeのアクティビティバーから「拡張機能」を選択する。検索して拡張機能:Docker と、拡張機能:Remote-Containers をインストールする。すると、それぞれのアイコンがアクティビティバーに表示されるようになる。
  • VSCodeのアクティビティバーから「リモートエクスプローラ」を選択する
  • サイドバーから、「work My-python」を右クリックし、「Atach Container」を選択する
  • コンテナ:My-python にアクセスできる別ウィンドウがひらく
  • コンテナ:My-python のウィンドウのアクティビティバーから「拡張機能」を選択する。検索して拡張機能:Python, Pylance と、拡張機能:Jupyter と、拡張機能:MarkDown All in One をインストールする

 

Jupyter Notebook を使う

  • VSCodeのアクティビティバーから、「エクスプローラー」を選択し、「メニュー」 -「ファイル」-「新規ファイル」から、拡張子が「.ipynb」のファイルを作成する
  • これで、使えるようになりました。

コメント

タイトルとURLをコピーしました