🐡

ColimaでDockerの環境構築

に公開

前回、Docker の環境構築方法の手法としてDocker Desktop以外の選択肢を解説しました。その中で登場したColimaについて深掘りをし、Colimaを使用したDockerの環境構築方法について解説していきたいと思います。

Colimaとは?

ColimaはLima(軽量 Linux VM)上でDocker / containerdを動かすラッパーで、macOSやLinuxでDockerデーモン相当を手軽に用意できるツールです。Colima自体は軽量でリソース調整や複数プロファイル、Kubernetes有効化などが可能になります。

https://github.com/abiosoft/colima

それでは、早速環境構築の方法について解説していきたいと思います。

前提条件

前提条件としてHomebrewが入っていることとします。
Homebrewのインストール方法として、公式ページを参考にしてください。

https://brew.sh/ja/

環境構築手順

1) 既存のDocker Desktopを削除

仮に、Docker Desktopが存在する場合、競合する設定が残ることがあるため、完全にアンインストールする必要があります。Docker Desktopの削除についてはOSごとに異なるので、公式ドキュメントを参考にして削除するのがおすすめです。

https://docs.docker.com/desktop/uninstall/

2) Docker CLIのインストール

docker を使用する上でお馴染みのDocker CLI(docker コマンド)をインストールします。

brew install docker

ここでインストールするのはCLI(docker コマンド)で、Dockerデーモン(コンテナを動かすツール)自体はまだ存在しない点に注意してください。

HomebrewでDocker CLIをインストールする場合、~/.docker/config.jsonにパスを明示する必要があります。

{
  "cliPluginsExtraDirs": ["/opt/homebrew/lib/docker/cli-plugins"]
}

3) Docker Composeのインストール

dockerコマンド同様、docker composeコマンドを使用できるようにするためにインストールします。

brew install docker-compose

4) Colima のインストール

brew install colima

ここまでがColimaをインストールする手順です。
続いて、Colimaの起動方法について解説していきます。

Colimaの起動

Colimaの起動方法は単純です。

colima start

このようにすれば、Colimaが起動され、dockerコマンドやdocker composeコマンドからコンテナを動かすことができます。

推奨カスタム起動

colimaの起動方法として使用ケースに合わせたカスタムをすることをお勧めします。

  • CPU/メモリ/ディスク容量を指定したい場合
colima start --cpu 4 --memory 8 --disk 80

--cpu 4 # CPUコア数(単位:コア数)
--memory 8 # メモリ容量(単位:GB)
--disk 80 # 仮想ディスク容量(単位:GB)

  • ランタイムをdockerではなく、軽量なcontainerdに切り替える場合
colima start -r containerd
  • Kubernetesを有効化する場
colima start --kubernetes

基本コマンド

紹介したコマンド以外の基本コマンドについて解説します。

# 現在起動中の Colima インスタンスの状態を表示
colima status

# 利用可能な Colima インスタンスの一覧を表示
colima ls

# Colima インスタンスを停止(VMをシャットダウン)
colima stop

# Colima インスタンスを削除(VM・設定・ディスクイメージを含めて完全削除)
colima delete   # 使用していたディスク容量も解放される

まとめ

今回はDockerの環境構築方法としてColimaを使用した手法を解説しました。
本記事で、Colimaについてと環境構築の方法を知ることができたかと思います。

Colimaは軽量かつ状況に合わせたCPU/メモリ/ディスク容量の指定ができる点が利点だと考えています。
逆に欠点としては、Kubernetesを使用する際はすべての機能が使えない可能性があるということです。もし、Kubernetesを使用する場合、個人であればDocker Desktop企業であればRancher Desktopを使用することをお勧めします。

ご自身の状況に合わせたDockerライフを送れることを願っています。

Discussion