最小限の労力でMacBookにDockerデータサイエンス環境を構築する

データサイエンティストの間でもDockerの人気が高まっているが、エンジニアのように使いこなすことは容易ではない。マーケター寄りのデータサイエンティストならインフラ技術を学んだことがなくても不思議ではないし、そんなところに時間をかけたくないと考える人も多いだろう。

最近、Dockerで機械学習や統計解析がひと通りできる環境を構築する必要に迫られ、AnacondaのDockerイメージを使うと手っ取り早いと知った。データサイエンス定番のPythonディストリビューションLinux環境がセットのイメージが公式に提供されているのだ。ローカル環境にAnacondaをインストールした結果、デフォルトのPythonと競合が生じる事態も避けられる。pyenvなどローカルでのPythonバージョン管理方法も存在するが、ここでまとめた方法ならもっと簡単である。

構築手順

以下の5つの手順でDockerのインストールからAnaconda環境の構築、そしてJupyter Notebookの起動までが完了する。なおMacBookでHomebrewが使える状態を前提とする。

手順1(ターミナルで実行)

brew install --cask docker

これだけでDockerのインストールは完了する。ブラウザでDockerのページへアクセスする必要もユーザ情報を登録する必要もない。

手順2

LaunchpadからDockerを起動する。ただ起動し、画面の指示に従って進むだけでよい。

手順3(ターミナルで実行)

docker pull continuumio/anaconda3:2021.05-amazonlinux

Docker HubからAnacondaのDockerイメージをダウンロードする。anaconda3:2021.05-amazonlinuxはバージョン名である。以下のページからダウンロードしたいバージョン名を確認して指定する。ページを開いてすぐに出てくるコマンドをコピーすると「anaconda3」がダウンロードされるが、これはその時点での最新バージョンがダウンロードされるという意味である。実行環境の管理の観点からは、バージョン名を指定したほうがよい。
hub.docker.com

手順4(ターミナルで実行)

docker run --name anaconda -v /local_dir:/docker_dir -p 8888:8888 --rm -it continuumio/anaconda3:2021.05-amazonlinux

Dockerコンテナを作成し起動する。実行と同時にコンテナ内にログインした状態になる。-vオプションではローカル環境のディレクトリをマウントしている。これによりローカル環境に置いてあるファイルがコンテナ内で使えるし、コンテナを停止してもマウントしたディレクトリ内の作業内容が失われることはない。

手順5(ターミナルで実行)

jupyter notebook --ip=0.0.0.0 --allow-root

最後にJupyter Notebookを起動する。コンテナ内で実行したノートブックをローカル環境のブラウザで開くため、外部接続を許可する--ip=0.0.0.0を指定している。