Docker DesktopからColima CLIに移る時に問題になったことと解決法
はじめに
Docker Desktop を使わず、Colima CLI 環境で Docker Compose を利用する際に直面した問題と、その解決方法をまとめました。本記事では、Docker Desktop から Colima CLI に移行する際に発生した主な問題点(docker compose が動作しない、設定ファイルの変更が必要など)について詳しく解説します。
Docker Desktopを使っていたが、色々あってColima CLIをつかうことにした。けど、色々してるとdocker composeすらもできなくなって、
> docker compose version
docker: 'compose' is not a docker command.
See 'docker --help'
といわれる始末で困った時のまとめです。
前提として、M3 macbook proでzshを使用しています
問題点
Docker Desktop を Colima CLI に置き換える際に、以下のような問題が発生しました:
1. docker compose が動作しない
Colima 環境で docker compose コマンドを実行したところ、以下のエラーが発生しました:
docker: 'compose' is not a docker command.
See 'docker --help'
2. ~/.docker/config.json の設定に依存する問題
Docker Desktop が利用していた設定ファイル ~/.docker/config.json の内容が Colima 環境では適合していませんでした。具体的には、以下のような credsStore の設定が問題となりました:
{
"credsStore": "desktop",
...
}
- Docker Desktop 専用の設定が残っている場合、Colima 環境では認証情報が正しく管理されず、プライベートレジストリへのアクセスができなくなります。
- また、認証ストア(
osxkeychainなど)を明示的に指定する必要があることがわかりました。
原因
-
Docker Compose プラグインの不正な設定
.docker/cli-plugins/docker-composeが Docker Desktop 用のシンボリックリンクを指しており、現在の環境(Colima, Apple Silicon)と互換性がありませんでした。 -
不正なバイナリのダウンロード
自動ダウンロードコマンドで適切なアーキテクチャのバイナリが取得できず、無効なファイル(9バイト程度のエラー状態のファイル)が配置されていました。 -
~/.docker/config.jsonの未修正
Docker Desktop 固有の設定が残っており、Colima 環境での動作を妨げていました。 -
Docker CLI の設定不足
Colima が有効な Docker Context として設定されていなかったため、Compose プラグインが認識されませんでした。
解決方法
1. 不正なシンボリックリンクの削除
まず、Docker Desktop 用の不適切なシンボリックリンクを削除します:
rm ~/.docker/cli-plugins/docker-compose
2. 正しい Docker Compose バイナリのダウンロード
Apple Silicon (M3 Pro, arm64) に対応した Docker Compose バイナリを公式リリースから直接ダウンロードします:
curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-darwin-aarch64 -o ~/.docker/cli-plugins/docker-compose
3. ダウンロードしたバイナリに実行権限を付与
ダウンロードしたバイナリファイルに実行権限を付与します:
chmod +x ~/.docker/cli-plugins/docker-compose
4. ~/.docker/config.json の修正
Docker Desktop 固有の設定を Colima に適したものに修正します。
- 設定ファイルを編集:
vim ~/.docker/config.json
-
"credsStore": "desktop"を削除または以下のように修正します:
{
"auths": {
"containers.git.hoge.com": {}
},
"credsStore": "osxkeychain"
}
-
"credsStore"を"osxkeychain"に変更することで、Colima 環境でも認証情報が正しく管理されます。 - プライベートレジストリ(例:
containers.git.hoge.com)を利用している場合、authsに適切なエントリを追加してください。
5. Docker Context の確認と設定
Colima を利用するため、Docker CLI が Colima を使用するように設定されているか確認します:
docker context ls
出力例:
NAME TYPE DESCRIPTION DOCKER ENDPOINT
default moby Current DOCKER_HOST based configuration
colima * moby Colima
colima が有効でない場合、以下のコマンドで切り替えます:
docker context use colima
6. 動作確認
Docker Compose が正しく動作するか確認します:
docker compose version
期待される出力:
Docker Compose version v2.x.x
原因と解決ポイントの要約
-
不正なバイナリの削除
Docker Desktop 用のシンボリックリンクを削除し、適切なバイナリをダウンロード。 -
適切なアーキテクチャのバイナリをダウンロード
Apple Silicon (arm64) 用バイナリを選択。 -
Docker CLI と Compose プラグインの互換性
Docker CLI はバージョン 20.10 以上が必要。 -
~/.docker/config.jsonの修正
Docker Desktop 固有の設定を Colima に適したものに変更。 -
Colima の正しい設定
Docker CLI が Colima を正しく使用するように設定(docker context use colima)。
まとめ
Docker Desktop から Colima に移行する際に、Docker Compose の動作や設定ファイルの修正が必要でした。同じような問題に直面している方は、上記の手順を参考にして設定を見直してください。
これで、Colima 環境でも Docker Compose を正常に利用できるようになりました! 🎉
Discussion