🤔

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 など)を明示的に指定する必要があることがわかりました。

原因

  1. Docker Compose プラグインの不正な設定
    .docker/cli-plugins/docker-compose が Docker Desktop 用のシンボリックリンクを指しており、現在の環境(Colima, Apple Silicon)と互換性がありませんでした。

  2. 不正なバイナリのダウンロード
    自動ダウンロードコマンドで適切なアーキテクチャのバイナリが取得できず、無効なファイル(9バイト程度のエラー状態のファイル)が配置されていました。

  3. ~/.docker/config.json の未修正
    Docker Desktop 固有の設定が残っており、Colima 環境での動作を妨げていました。

  4. 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 に適したものに修正します。

  1. 設定ファイルを編集:
vim ~/.docker/config.json
  1. "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

原因と解決ポイントの要約

  1. 不正なバイナリの削除
    Docker Desktop 用のシンボリックリンクを削除し、適切なバイナリをダウンロード。

  2. 適切なアーキテクチャのバイナリをダウンロード
    Apple Silicon (arm64) 用バイナリを選択。

  3. Docker CLI と Compose プラグインの互換性
    Docker CLI はバージョン 20.10 以上が必要。

  4. ~/.docker/config.json の修正
    Docker Desktop 固有の設定を Colima に適したものに変更。

  5. Colima の正しい設定
    Docker CLI が Colima を正しく使用するように設定(docker context use colima)。


まとめ

Docker Desktop から Colima に移行する際に、Docker Compose の動作や設定ファイルの修正が必要でした。同じような問題に直面している方は、上記の手順を参考にして設定を見直してください。

これで、Colima 環境でも Docker Compose を正常に利用できるようになりました! 🎉

GMOペパボ株式会社

Discussion