Published

Colima で macOS の Docker 環境構築

Authors

TL;DR

  • macOS で Docker Desktop が使えない場合は Colima を使った Docker 環境の構築が簡潔です.

Table of Contents

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 という名前のインスタンスが表示され, STATUSRunning になっているはずです. この状態であれば, 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 はセットアップの簡潔さという尺度では類似の代替サービスと比較して優れていると思います.