はじめに
2021/10/26にM1 Pro/Maxを搭載したMacBook Proが発売され、現在環境構築をされている方も多いかと思います。
一方で、Pro/Maxも含めたM1 MacはIntel Macと同じ方法でセットアップできないツールが多く、また公式未対応時のイレギュラーなセットアップ方法の記事がネット上に多く存在するため、どのセットアップ方法が正しいのか判断するのが非常に難しい状況となっています。
そこで今回、私が調べた範囲で現時点でのベストプラクティスと思われる方法をまとめてみました。
方法選択には主観も含まれているため、「こちらの方が良い!」という方法をご存じであれば、気軽にコメント頂けるとありがたいです
更新情報
本記事は2021/10/30時点での内容をベースとしています。
発売直後でベストプラクティスが固まっていない要素も多いため、情報が入り次第適宜記事を更新していこうと思います。
2022/6/26更新
- PyTorchでGPUが使用できるようになったそうなので、インストール法を修正しました
2024/4/14更新
- MinicondaによるPython環境構築に関して、こちらで紹介しているパッケージは全てPython3.10で動作することを確認したため、Python3.10を選択するよう記述を更新しました。
対象とする開発環境
Mac OSの初期設定、および私が開発によく使用している、
・VSCode
・Python
・Docker
・Android Studio
の環境構築法についてまとめてみました。
手順
以下の順番で環境構築方法を解説していきます。
一部の環境構築のみ実施したい場合は、以下のリンクから直接内容に飛んでください
対象ツール | リンク |
---|---|
Mac OS初期設定 | リンク |
VSCode | リンク |
Python | リンク |
Docker | リンク |
Android Studio | リンク |
Mac OS初期設定
開発用ソフトをインストールする前に、まずはMac OSの設定を整えて使いやすいデスクトップ環境を構築します。
初期設定
電源を入れると、色々と初期設定が求められます。基本的には指示に従って進めればOKです
デスクトップ設定
まず電源を入れて目につくのが、下のDockが大きくて邪魔だということです。
その他にもスクロールの向きがWindowsと逆だったり、Finder(Windowsでいうエクスプローラ)が使い辛かったりするので、
以下のYouTubeチャンネルを参考にして設定し直すと、使いやすくなるかと思います。
OSアップデート
購入直後のOSはバージョンが古くなっていてセキュリティ的に脆弱なことがあるので、アップデートします。
基本的には初回起動時に自動でアップデート画面が出てきますが、以下の方法で手動アップデートも可能です
・Dockから「システム環境設定」を開く
・「ソフトウェアアップデート」を開き、アップデートがあれば指示に従い実行
ターミナルのショートカット作成
以後の操作ではターミナル(Windowsでいうコマンドプロンプト)を多用しますが、デフォルトではショートカットが存在しないので、以下の手順で作成します。
画面右上のメニューバーから、検索メニューに入ります
「ターミナル」で検索して出てきたターミナルのアイコンを、画面下のDockにドラッグ&ドロップします
Homebrewのインストール
Macにおける定番パッケージ管理ツールであるHomebrewをインストールします。
Homebrewをインストールする事で、今までインストールしたアプリケーションを一括管理することができ、更新管理等を効率化できます(Linuxにおけるaptや、Pythonにおけるpipに近いイメージです)
Homebrew公式サイトにアクセスし、下図のチェックボックスをクリックしてシェルコマンドをコピーします
コピーしたシェルコマンドをターミナルに貼り付け、Enterを押して実行します。
パスワードが求められるので、OSのユーザーパスワードを入力します。
M1系CPUではインストールが完了すると、以下のように「パスを通してください」というメッセージと共に2個のコマンドが表示されます。
==> Next steps:
- Run these two commands in your terminal to add Homebrew to your PATH:
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/******/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
- Run `brew help` to get started
指示に従い、まずは1個目のコマンドをコピペして実行します
(******の部分はユーザ名が入る)
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/******/.zprofile
次に、2個目のコマンドをコピペして実行します
eval "$(/opt/homebrew/bin/brew shellenv)"
以下のコマンドでHomebrewのバージョンが表示されたら成功です
brew --version
※Homebrewの使い方は、以下の記事が分かりやすいです
Homebrewでのインストールおすすめアプリケーション
このタイミングで、Homebrewを使って以下のアプリケーションを入れてしまうと便利です
・Chrome
・Git(入っていないとき)
brew install google-chrome --cask
※最後の「--cask」は、GUIアプリケーションのインストールに必要なオプションです。
私のMac OS(12.0.1)ではGitが最初から入っていましたが、入っていない場合はインストールが必要です。入っているかどうかは以下で確認できます
git --version
上記でバージョンが表示されれば既にインストールされています。インストールされていない場合は以下でインストールします
brew install git
VSCode環境構築
VSCode(Visual Studio Code)は軽量かつ多機能なソースコードエディタで、Python(分析)やRuby(Webアプリ)など、多くの言語における主要なエディタとして定着しつつあります。
Microsoft製のためWindowsのイメージがあるVSCodeですが、Macでも着々とシェアを伸ばしているようです。
以下の手順で、VSCodeでの開発態勢を整えて行きます。
(こちらの記事を参考にさせて頂きました)
VSCodeのインストール
まずVSCode本体をインストールします。
Homebrewが入っていれば、以下のコマンドでインストールできます
brew install --cask visual-studio-code
Finderの「アプリケーション」フォルダにVSCodeが生成されるので、Dockにドラッグ&ドロップしてショートカットを生成すると便利です。
これでVSCodeのインストールが完了です。
参考までに、Homebrewを使用しないVSCodeのインストール法も下記します。
参考:Homebrewを使用しないVSCodeのインストール
VSCodeのダウンロードページにアクセスし、以下のリンクからM1 Mac版のVSCodeをダウンロードします。
ダウンロードしたファイルをFinderで開き、Visual Studio Code.appを「アプリケーション」にドラッグアンドドロップします
VSCode拡張機能のインストール
VSCodeには便利な拡張機能(アドオン)が多く存在し、これらをインストールすることで開発効率をアップさせることができます。
以下のように、VSCodeを起動して出てくる左下の「Extensions」タブをクリックし、検索して出てきたアドオンを「Install」ボタンでインストールできます。
個人的(Python分析エンジニア的)おすすめアドオンは、以下となります。
アドオン名 | 機能 |
---|---|
Python | PythonのリンターやJupyter拡張等、Pythonの基本機能を網羅したアドオン |
Git Graph | Gitのツリーをグラフィカルに可視化 |
Rainbow CSV | CSVファイルを色分け表示するアドオン |
Remote SSH | リモート端末上のコードをSSH接続で開発するアドオン |
Remote Containers | Dockerコンテナ上のコードを開発するためのアドオン |
Docker | Dockerのコンテナ管理やDockerFileのリンターを含んだアドオン |
Web系の開発をするのであれば、以下の記事が参考になるかと思います。
VSCodeでの開発方法
VSCodeで実際にコードを書く際は、以下の手順が基本となります
作業用フォルダの作成
Finderあるいはターミナル(mkdirコマンド)で、好きな場所に作業用フォルダを作成します
VSCodeで作業用フォルダを開く
VSCodeを起動し、左上のタブを選択したのち「Open Folder」をクリックします
スクリプトの作成
開いたフォルダ上で右クリックし、「New File」を選択します
スクリプトのデバッグ
以下のように、左側のデバッグタブ(虫のマーク)を選択し、「Run and Debug」を押すことで、スクリプトをデバッグ実行できます
行番号の左を選択すれば、ブレークポイント(デバッグ中に処理を止めて変数を確認するポイント)を打つこともできます
Python環境構築
M1 Macでは、今回の新型Pro発売前からPython環境構築にハマるとの声が多く聞かれます。
その原因は、pipやanaconda等のよく使われるパッケージ管理ツールが使用できないライブラリが多いことに集約されるようですが、各ライブラリのpip対応も徐々に進んでおり、状況が刻一刻と変わる段階にあります。
上記の状況を鑑みて、本記事では記事執筆時における、M1 MacにPython本体およびよく使うライブラリをインストールする方法を紹介します。
執筆においては、以下の記事を参考にさせて頂きました
Python本体のインストール確認
Python自体はデフォルトでインストールされており、現時点ではこのデフォルトのPython以外は一旦削除することが望ましいです(環境の乱立による不具合を防ぐため)
「デフォルトのPython以外に何があるの?」と思われた方も多いかと思いますが、PythonはHomebrew等でもインストールできるため、まずはデフォルトのPythonのみがインストールされているかを確認します。
Python本体のパス確認
以下のコマンドを打ち、帰ってきたパスが/usr/bin/python3
であればデフォルトのPythonにパスが通っているのでOKです
which python3
HomebrewのPythonが存在しないことを確認
以下のコマンドでHomebrewのインストールパッケージ一覧を表示させ、Pythonが存在しないことを確認します
brew list
各種ライブラリのインストール
以下の有名どころの分析系ライブラリをインストールする方法を紹介します。
ライブラリ名 | 用途 | インストール方法 |
---|---|---|
numpy | 数値計算 | パターン1 (Miniforge) |
pandas | データ整形 | パターン1 (Miniforge) |
scipy | 統計計算 | パターン1 (Miniforge) |
scikit-learn | 機械学習 | パターン1 (Miniforge) |
lightgbm | 機械学習 | パターン1 (Miniforge) |
xgboost | 機械学習 | パターン1 (Miniforge) |
jupyter | 各種可視化 | パターン1 (Miniforge) |
matplotlib | グラフ描画 | パターン1 (Miniforge) |
seaborn | グラフ描画 | パターン1 (Miniforge) |
geopandas | 地理データの分析 | パターン1 (Miniforge) |
opencv | 画像処理 | パターン1 (Miniforge) |
optuna | パラメータチューニング | パターン1 (Miniforge) |
自作ライブラリ | いろいろ | パターン2 (Miniforge + pip) |
TensorFlow | 機械学習(深層学習) | パターン3 (Miniforge + いろいろ) |
PyTorch | 機械学習(深層学習) | パターン4 (Miniforge + pytorch公式リポジトリ) |
パターン1〜4の具体的手順について、以下で詳説します
パターン1:Miniforgeによるインストール
Miniforgeとは、パッケージ管理システム「conda」をconda-forgeリポジトリで利用するためのツールで、M1 Macを含むマルチプラットフォームに対応していることが特徴です。
現状、多くのライブラリにおいてM1 Macに簡単にインストールするための唯一の手段となっています。
・conda系ツールまとめ
conda系のツールはAnacondaやMiniconda等種類が多く、「どれがどれだか分からない!」という方も多いと思うので、以下にまとめました。
(間違いがあればご指摘頂ければと思います)
名称 | パッケージ管理システム | 使用リポジトリ | 初期パッケージ | 商用利用 |
---|---|---|---|---|
Anaconda | conda | Anacondaデフォルトリポジトリ | てんこ盛り | 有償 |
Miniconda | conda | Anacondaデフォルトリポジトリ | 最小限 | 有償 |
Miniconda + conda-forge | conda | conda-forge | 最小限 | 無償 |
Miniforge | conda | conda-forge | 最小限 | 無償 |
パッケージ管理システムとリポジトリの違いは、以下のようになります
パッケージ管理システム(conda):パッケージを管理する仕組み
使用リポジトリ(conda-forge等):パッケージを格納しておく場所
余談ですが、Anaconda商用利用有償化問題は、condaではなくAnacondaデフォルトリポジトリが有償化されたことが根本原因(リポジトリの負荷増大防止のため)のようです。
Miniforgeのインストール方法
MiniforgeのGitHubページにアクセスし、以下のMiniforge3-MacOSX-arm64
をダウンロードしてください
(高速化を目的としたpypyやMamba等もありますが、今はひとまず無視してください)
ターミナルから以下のコマンドでダウンロードフォルダに移動し
cd ~/Downloads
以下のコマンドでダウンロードしたMiniforge3-MacOSX-arm64.shを実行してください
bash Miniforge3-MacOSX-arm64.sh
途中色々と聞かれますが、全てEnterを押すかyesで進んでください。
インストール完了後、シェルを一度閉じてから開き直し、以下のコマンドでcondaを有効化し、(base)
と表示されれば成功です
conda activate
また、以下のコマンドでcondaのデフォルト環境(base)上にインストールされているPythonのバージョン等の情報が表示されます
conda info
このままでは常にシェルに(base)と表示されてしまいますが、以下のコマンドでcondaを無効化すれば消すことができます
conda deactivate
仮想環境の作成
condaでパッケージ管理を行う際は
・ベース環境 (base)
・仮想環境
の2通りの方法があります。
後述しますが、M1 Macにおいてはライブラリによってpipとcondaの2通りのパッケージ管理ツールを使い分ける必要があり、前述の「混ぜるな危険問題」(pipとcondaで同じライブラリをインストールし不具合発生)が起こりやすい状況と言えます。
このリスクを回避するためには、仮想環境を利用することが望ましいです(問題が発生したら新たに仮想環境を作り直せば良い)
また、上記の方法でMiniforgeをインストールすると、conda上にPython3.9がインストールされますが、MacOS版TensorFlowは現状Python3.8にしか対応していないため、Python3.8の環境を簡易的に作るためにも仮想環境は良いソリューションとなります。
2024/4現在、Python3.10で動作します。
前置きが長くなりましたが、以下のコマンドでPython3.10の仮想環境を作成します
conda create --name 仮想環境名 python=3.10
※「仮想環境名」の部分は好きな英数の名前を付けてください(例:python310)
作成が完了したら、以下のコマンドで環境一覧を表示させ、作成した仮想環境名が存在することを確認します
conda env list
# conda environments:
#
base * /Users/******/miniforge3
仮想環境名 /Users/******/miniforge3/envs/仮想環境名
※「******」の部分はユーザ名が入ります
以下のコマンドで、作成した仮想環境を有効化します
conda activate 仮想環境名
以下のコマンドで、インストールされているライブラリを確認します
conda list
# Name Version Build Channel
ca-certificates 2021.10.8 h4653dfc_0 conda-forge
libcxx 12.0.1 h168391b_0 conda-forge
libffi 3.4.2 hbdafb3b_4 conda-forge
libzlib 1.2.11 hee7b306_1013 conda-forge
ncurses 6.2 h9aa5885_4 conda-forge
openssl 3.0.0 h3422bc3_1 conda-forge
pip 21.3.1 pyhd8ed1ab_0 conda-forge
python 3.8.12 hd949e87_2_cpython conda-forge
python_abi 3.8 2_cp38 conda-forge
readline 8.1 hedafd6a_0 conda-forge
setuptools 58.2.0 py38h10201cd_0 conda-forge
sqlite 3.36.0 h72a2b83_2 conda-forge
tk 8.6.11 he1e0b03_1 conda-forge
wheel 0.37.0 pyhd8ed1ab_1 conda-forge
xz 5.2.5 h642e427_1 conda-forge
zlib 1.2.11 hee7b306_1013 conda-forge
最低限のライブラリのみがインストールされていることがわかります。
numpy等の計算系ライブラリは入っていないため、別途インストールする必要があります。
なお、作成した仮想環境は以下のコマンドで削除できます
conda remove -n 仮想環境名 --all
ライブラリのインストール
前述のリストで「パターン1」となっていたライブラリに関しては、condaでインストールすることができます
(インストール前に仮想環境がactivateされていることを確認して下さい)
numpy
conda install numpy
pandas
conda install pandas
scipy
conda install scipy
scikit-learn
conda install scikit-learn
lightgbm
conda install lightgbm
xgboost
conda install xgboost
jupyter
conda install jupyter
matplotlib
conda install matplotlib
seaborn
conda install seaborn
geopandas
conda install geopandas
opencv
conda install opencv
なお、ライブラリを一個ずつインストールすると、手間が掛かる上にactivate忘れ等のミスの原因となるので、後述のenvironment.yamlで一括インストールすると便利です
ライブラリインストールの確認
仮想環境をactivateした状態で以下のコマンドを打ち、インストールしたライブラリが含まれていることを確認します
conda list
VSCodeへの仮想環境の適用
作成した仮想環境にVSCodeからアクセスできるようにします。
VSCodeを開き、先ほどの「VSCode使用法」の項と同様に、作業したいフォルダを開きます。
以下のように左下に「Python 3..」と表示されている部分があると思うので、そこをクリックし、出てきた項目から「Enter interpreter path」を選択します
Find...をクリックします
フォルダ選択画面が表示されるので、インタープリタを探して「インタープリタを選択」を押します
インタープリタは、先ほどconda env list
で表示された仮想環境のパス内に存在します。
一般的には以下のようなパスとなるかと思います。
/Users/******/miniforge3/envs/仮想環境名/bin/python3.x
※「******」の部分はユーザ名が、「x」の部分はPythonのバージョンが入ります
以下のように左下のPythonのバージョンが仮想環境のものに変われば成功です
これで、デバッグ実行時に仮想環境のライブラリが適用されます。
(シェル実行する際はactivateコマンドで仮想環境を有効化してから実行して下さい)
※ condaを使用したくない方へ
特にWindowsユーザの方は、condaとpip混ぜるな危険問題やAnaconda有料化問題等から、condaにイヤな思い出がある方も多いかと思います。私もそうでした。
このような方であっても、現状ではMiniforge以外でのインストールが困難なライブラリが多いため(scipy、scikit-learn、TensorFlowなど)、現時点ではcondaのデメリットを鑑みてもMiniforgeを使用することをお薦めします
一方でpipで簡易にインストールできるライブラリも徐々に増えている(numpyやpandasは既にpipでもインストールできるようです)ため、将来的にはconda(Miniforge)を使用しなくともM1 MacでPython環境構築できるようになる可能性が高いと思います。
現状未対応のライブラリも徐々に対応が進んでいるため、大きな動きがあれば本記事でも内容更新しようと思います(以下はscikit-learnでの開発進捗を共有するIssues)
パターン2:Miniforge + pipによるインストール
condaでインストールできないライブラリに関しては、pipでインストールすることも可能です。
この際、同じライブラリをpipとcondaで2重にインストールすると不具合の原因となるので、ご注意ください
(仮想環境内であれば、仮想環境を作り直せば復旧可能です)
pipでのインストールは、以下の手順で行います
Miniforge環境の構築
まずはパターン1の手順を一通り完了させ、condaでインストールできる依存ライブラリは全てインストールしておきます
pipによるライブラリインストール
condaでインストールできないがpipでインストールできる主なライブラリ(前述の「パターン2」)のインストール方法を紹介します
optuna
optunaは
conda install optuna
でインストールしようとすると、
UnsatisfiableError: The following specifications were found to be incompatible with each other:
Output in format: Requested package -> Available versions
というエラーが出てうまくインストールできないので、pipでインストールします
(Windowsではcondaでもインストールできるようですが、M1でできない原因は不明です)
※2023/1/3更新: M1でもcondaでoptunaをインストール出来るようになったようです
自作ライブラリ
こちらの記事で紹介した方法でpipインストール可能とした自作ライブラリや、conda-forgeに登録されていないマイナーなライブラリをインストールしたいときも、pipが便利です。
例えばこちらの記事で作成した「seaborn-analyzer」というライブラリをインストールしたい場合、仮想環境をactivateしてREADMEに記載されている依存パッケージをcondaでインストールしたのち、
pip install seaborn-analyzer
でインストールできます
【参考】ライブラリの一括インストール
上記の手順ではライブラリを一個ずつインストールしており、手間が掛かる上にactivate忘れやpipとcondaの間違い等のミスも起こりやすい状況となっています。
上記の問題の解決策としては、environment.yaml(pipにおけるrequirements.txtに相当)による一括インストールが便利です
例えば前述のパターン1(condaでインストール)およびパターン2(pipでインストール)の全てのライブラリをインストールしたpython3.10仮想環境を作成したい場合、以下のようなenvironment.yamlを作成します
name: 環境名
channels:
- conda-forge
dependencies:
- python=3.10
- numpy
- pandas
- scipy
- scikit-learn
- lightgbm
- xgboost
- jupyter
- matplotlib
- seaborn
- geopandas
- opencv
- pip:
- optuna
- seaborn-analyzer
prefix: /Users/ユーザ名/miniforge3/envs/環境名
上記で作成したenvironment.yamlを以下のコマンドで実行すれば、記述したライブラリが全てインストールされた仮想環境を作成することができます。
conda env create --file environment.yaml
インストール元のリポジトリも個別に指定できるので、conda-forge以外のリポジトリ(pip等)からのインストールも可能です
上記はライブラリの名称のみを指定していますが、バージョンまで指定してインストールしたいときや、現在の環境をenvironment.yamlに書き出したいときは、以下の記事が参考になります。
パターン3:TensorFlowのインストール
TensorFlowは記事によってインストール方法が異なっており、ベストプラクティスが定まっていない状況と思われますが、恐らく現状では以下の方法が一番簡単です(参考記事)
上記を参考に、以下の方法でTensorFlow (M1 GPU対応)のインストールを進めます
Miniforge環境の構築
まずはパターン1の手順を一通り完了させ、opencvをcondaでインストールしておきます。
tensorflow-depsのインストール
仮想環境をactivateしたのち、TensorFlow-deps(依存パッケージ)を以下のコマンドでインストールします
conda install -c apple tensorflow-deps
base TensorFlowのインストール
以下のコマンドで、Mac版TensorFlowをインストールします
python -m pip install tensorflow-macos
tensorflow-metalプラグインのインストール
TensorFlowでM1 GPUを効率的に利用するためのプラグインであるtensorflow-metalを、以下のコマンドでインストールします
python -m pip install tensorflow-metal
動作確認
以下のコマンドでTensorFlowのバージョンが表示されれば成功です
python -c 'import tensorflow as tf; print(tf.__version__)'
パターン4:PyTorchのインストール
以下のサイトに記載されているように、pytorchのリポジトリ経由でcondaからpytorchをインストールできるようになったようです。
以下の手順でPytorchをインストールします
Miniforge環境の構築
まずはパターン1の手順を一通り完了させます。
pytorchのインストール
仮想環境をactivateしたのち、pytorchとtorchvisionを以下のコマンドでインストールします
conda install -c pytorch pytorch torchvision
※2022/6/26更新
PyTorchがM1 GPUに対応したそうなので、GPUを利用したい方は以下のpip3コマンドでインストールした方がパフォーマンスが向上するようです (こちらやこちらを参考にさせて頂きました)
pip3 install -U --pre torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/nightly/cpu
以下Pythonスクリプトでバージョンが1.12.0以上、かつMPUが有効(True)になっていればOKです
import torch
print(torch.__version__)
print(torch.backends.mps.is_available())
M1MacのGPU学習を有効化する(データやモデルをGPUに送る)際には、CUDAでは"cuda"としていた部分を以下のように"mps"と指定すると良いでしょう(mpsはMetal Performance Shadersの略)。
model.to("mps")
参考までに、私の環境(M1 Pro 10core-CPU & 14core-GPU)でのCPUとGPUでの学習時間を比較しました。
詳細は以下の動作確認用スクリプト中の4_pytorch_test.py
を参照頂きたいですが、データはCIFAR10、モデルはResNet16、バッチ数32、エポック数5で学習しています。
環境 | 学習所要時間 |
---|---|
GPU (device="mps") | 140.2s |
CPU (device="cpu") | 1590.9s |
CUDA参考 (CUDA + GeForce RTX4080 + Ubuntu22.04) | 52.1s |
CPUよりはだいぶ速くなっており、CUDAとも思ったほど差がなさそうに見えます。とはいえ大きなモデルではCUDAに優位性があることは間違いないので、速度重視であればNVIDIAのGPUとCUDAを使用した方が良いでしょう。
動作確認用スクリプト
以下に、今回インストールしたライブラリの動作確認用スクリプトをアップロードしたので、こちらをVSCodeで実行してエラーが出なければ成功です。
以上でPythonの環境構築は完了です!
かなり手間がかかりましたが、環境をほぼMiniforgeに統一できたので、現状でのベストプラクティスに近い環境となったのではと考えております。
(あえて言うのであればMiniforgeをHomebrewでインストールするか少し迷いましたが、現時点では適用事例が少ないので公式の方法でのインストールにしております)
Docker環境構築
Dockerに関しても、M1 Macはややイレギュラーな対応が必要となります。具体的には以下となります。
・Rosetta2 (Intel CPU用に開発されたアプリを動かすためのツール)のインストールが必要
・一部のDocker Imageが正常に動作しない
以下の手順でセットアップを進めます
Docker Desktopのインストール
まず、Docker Desktop本体のインストールを完了させます
Rosetta2のインストール
以下のコマンドで、Rosetta2をインストールします
softwareupdate --install-rosetta
途中でインストール確認メッセージが出てくるので、「A」と入力してEnterを押します
Docker Desktopのダウンロードとインストール
Docker公式から、以下のボタンよりDocker.dmgをダウンロードします
ダウンロードしたファイルをダブルクリックすると以下の画面が開くので、指示通りウィンドウ内のDockerのアイコンをApplicationsにドラッグ&ドロップします
しばらく待つとDocker Desktopのインストールが完了します
Dockerの動作確認
Docker Desktopを開くと、管理者権限の確認画面が出てくるのでパスワードを入力します。
利用規約確認画面でOKを押してしばらく待ち、以下の画面が出て来れば起動成功です。
コンテナが起動するかどうかを確認するため、適当な作業用フォルダを作成し、直下に以下のようなdocker-compose.yamlを作成します(Python開発環境のImageです)
version: '3'
services:
test_python:
image: python:3.8-buster
volumes:
- .:/mnt
stdin_open: true
tty: true
working_dir: /mnt
command: /bin/bash
上記ファイルのあるディレクトリにターミナルで移動し、以下のコマンドでコンテナを起動します
docker-compose run test_python
Imageのダウンロードとコンテナ起動が始まるのでしばらく待ち、以下のようなbashが立ち上がれば成功です
root@******:/mnt#
(bashからは「exit」で抜けられます)
また、VSCodeのRemote Containersアドオンがインストールされていれば、リモート接続タブから以下のように作成したコンテナにアクセスすることができます
上図の場合作業用フォルダ名が「miniforge_test」だったので、この名前に合わせてコンテナ名が作成されます
※docker-composeによるコンテナ名の命名規則はこちら参照
一部のImageでのエラー回避方法
下記記事のように一部のImage(mysql等)では、M1 Macに非対応であることに由来したエラーが発生します。
上記記事に記載されているように、docker-composeにplatform: 'linux/amd64'
という定義を追加すれば(あるいはrunやup時に--platform linux/amd64
というオプションを追加)、エラーを回避することができます(公式にも記載あり)
※Docker Desktopの商用有償化回避
ご存じの方も多いかと思いますが、Docker Desktopは2022年2月より、従業員数250人以上または売上10億円以上の企業において有償化されます。
有償化を回避するためには、以下のようにLimaを使用する方法等があるようです。
Android Studio環境構築
別記事で投稿しました