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 に置き換える際に、以下のような問題が発生しました:
docker compose
が動作しない
1. Colima 環境で docker compose
コマンドを実行したところ、以下のエラーが発生しました:
docker: 'compose' is not a docker command.
See 'docker --help'
~/.docker/config.json
の設定に依存する問題
2. 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
~/.docker/config.json
の修正
4. 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