- Published
Colima で macOS の Docker 環境構築
- Authors
- Name
- Yoshihiro Fukuhara
- @gatheluck
TL;DR
- macOS で Docker Desktop が使えない場合は Colima を使った Docker 環境の構築が簡潔です.
Background
2022 年 3 月 31 日から Docker Desktop が有料化されました (ただし, 従業員数が 250 人未満, 年間収益が 1,000 万ドル未満の企業, 個人利用, 教育, 非営利目的の OSS では引き続き無料で利用可能). これをうけて, macOS 等の環境で Docker を無料で使用するためには Docker Desktop の代替が必要となりました.
Docker Desktop 代替として使用出来るものは minikube, Rancher Desktop, Lima などがありますが, セットアップの簡潔さという尺度では現状では Colima が最も良いと思います.
What is Colima?
Colima (Containers in Lima) は名前から示唆されるように Lima の派生プロジェクトで, macOS において Docker/Kuberbetes 環境を最小限のセットアップで構築することを目指しているプロジェクトです.
Colima によって Docker が動作する際の仕組みは, 基本的に Docker Desktop のときと変わりません. Colima が立ち上げた Linux VM 内で Docker デーモン(dockerd
) を起動し, VM からホストにマウントされた docker.socket
を経由して, ホスト上の Docker クライアントが Docker デーモンにアクセス出来るようにしています.
Install
Colima をインストールします. Colima は Homebrew, MacPorts, Nix など複数のインストール方法に対応しています.
% brew install colima # Homebrew でインストールする場合
colima version
でバージョン情報が取得できれば, Colima のインストールは完了です.
Colima はランタイムを選ぶことができます. ここでは Docker をランタイムとして使用したいので, Docker クライアントをインストールします.
% brew install docker
Colima 101
Colima の基本的な使い方を記載します. 以下の内容は v0.5.2
の Colima に基づいて記載していますので, 大きく異なるバージョンをインストールしている場合は注意して下さい.
colima start
コマンドで新しい VM のインスタンスを作成 (もしくは既存のインスタンスを指定) して起動することが出来ます. 例えば下記のコマンドは, CPU 数, メモリサイズ (GB), ディスクサイズ (GB) を指定して新しいインスタンスを作成し, $HOME/
をマウントして起動します. :w
はボリュームを書き込み可能にするために必要です. 作成するインスタンスの名前は --profile
オプション (デフォルト値は default
), ランタイムの種類については --runtime
オプション (デフォルト値は docker
) でそれぞれ指定できます.
% colima start --cpu 4 --memory 8 --disk 100 --mount $HOME/:w
インスタンスの作成に成功すれば colima list
コマンドで default
という名前のインスタンスが表示され, STATUS
が Running
になっているはずです. この状態であれば, Docker クライアントが Docker デーモンと docker.sock
を経由して通信できるようになり, Docker が使用可能になります.
インスタンスを停止したいときは colima stop
コマンドを使用します. また, PC を再起動した場合もインスタンスは自動的に停止します. 停止したインスタンスは colima start
コマンドで再起動することが出来ます. このとき --profile
オプションの指定がない場合には default
インスタンスが起動します.
インスタンスの設定は colima start --edit
コマンドによって更新することが出来ます. しかし, ディスクサイズについてはインスタンス作成後は変更することは出来ません.
Tips
Insecure registries setting
Docker Desktop では GUI を使用して insecure registries を設定することが出来ました. Colima では colima start --edit
コマンドによって insecure registries の設定を行うことが出来ます. colima start --edit
コマンドによって表示される内容から下記のような部分を探し, EXAMPLE に従って, docker
セクションを更新して下さい.
# EXAMPLE - add insecure registries
# docker:
# insecure-registries:
# - myregistry.com:5000
# - host.docker.internal:5000
#
# Colima default behaviour: buildkit enabled
# Default: {}
docker: {}
Summary
今回は, macOS において Colima を使用して Docker 環境を構築する方法を書きました. Colima はセットアップの簡潔さという尺度では類似の代替サービスと比較して優れていると思います.