Docker Desktopを使わずにMac上にDocker環境を構築【2025年版】

## はじめに

最近10年使ったiMacがとうとうOSバージョンが古すぎて様々なソフトウェアやツールの最新バージョンがサポートしなくなったため新たにMac mini M4 Proを購入しました。せっかくなのでクリーンな状態から環境構築をしていこうと思い、この記事ではDockerの環境構築の手順を記します。

ちょうど2025年1月8日にMacのDocker Desktopがマルウェア扱いされて起動不能になる不具合が世界中で報告され話題になりました。[^1] Docker DesktopはDocker環境を構築するのに最もお手軽な方法ですが、このような問題が出ている中新調したクリーンなMacに新たにインストールするのはさすがに躊躇してしまったので、 今回は **Docker Desktopを使わないやり方** として知られる [Colima](https://github.com/abiosoft/colima) を使った方法でMacのDocker環境構築をしようと思いました。

[^1]: [Mac is detecting Docker as a malware and keeping it from starting #7520](https://github.com/docker/for-mac/issues/7520)

## 環境情報

- macOS: Sequoia 15.1
- チップ: Apple M4 Pro
- Homebrew: バージョン 4.4.15

## 前提条件

Homebrew がインストールされていることが前提です。まだの方は [こちら](https://brew.sh/ja/) からインストールしてください。

## インストール

1. Colima をインストール

    ```sh
    brew install colima
    ```

    ![install-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3472024/bc10400e-45e9-bc33-3cac-5d5dedfc1659.png)

2. Docker CLI をインストール

    ```sh
    brew install docker
    ```

    ![install-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3472024/a2b442d6-d5a6-acb9-7b81-e430543143d8.png)

3. Docker Compose CLI をインストール

    ```sh
    brew install docker-compose
    ```

    ![install-3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3472024/d19d9542-45f1-ffc5-9a79-e2d7eae78112.png)

4. Buildx をインストール

    `docker build` は Deprecated のメッセージ

    > The legacy builder is deprecated and will be removed in a future release.
    > Install the buildx component to build images with BuildKit:
    > <https://docs.docker.com/go/buildx/>

    が出るため指示に従い、 buildx をインストールする。

    ```sh
    brew install docker-buildx
    ```

    ![install-4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3472024/26997af1-2819-4aab-832d-59c86dd7a677.png)

## Dockerの設定

~/.docker/config.json が作られているのでこれを以下のように修正する。
(私の環境では `currentContext` は最初から `colima` になっていました。)

```json:~/.docker/config.json
{
    "auths": {},
    "currentContext": "colima",
    "cliPluginsExtraDirs": [
        "/opt/homebrew/lib/docker/cli-plugins"
    ]
}
```

`cliPluginsExtraDirs` を設定することで `docker-compose` を `docker compose` で実行できるようになる。パスは Homebrew のインストール先により異なる場合もある。正しいパスは以下のコマンドで確認可能。

```sh
brew info docker-compose
```

## 実行

1. Colima で VM を起動する

    ```sh
    colima start
    ```

    ![run-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3472024/660e6461-1bb9-6f38-27ba-6786f0b3c15a.png)

2. Docker CLI の確認

    ```sh
    docker version
    ```

    ![run-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3472024/11ed1c16-4770-f031-514c-981c91f98cfb.png)

3. Docker Compose CLI の確認

    ```sh
    docker compose version
    ```

    ![run-3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3472024/e2f21b1f-b3f6-c6e7-093e-377793206be7.png)

4. VM の停止

    ```sh
    colima stop
    ```

    VM の停止後は Docker Daemon が動いていないため、`docker` コマンドはちゃんと使えなくなっている。

    ![stop.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3472024/4253c656-2c82-6e51-5d62-6b251a783065.png)

## おまけ

### ホストOS再起動の度に自動で colima start する方法

以下のコマンドで、VM の起動とホスト再起動時の自動 `colima start` の設定を有効化する。

```sh
brew services start colima
```

設定を無効化したい場合は

```sh
brew services stop colima
```

## 参考

- [Running Docker on macOS Without Docker Desktop - DEV Community](https://dev.to/mochafreddo/running-docker-on-macos-without-docker-desktop-64o)
- [Colima で Docker と Docker Compose を使ってみた](https://zenn.dev/ore88ore/articles/docker-with-colima)
- [docker cli-plugins の設定方法が変わったので対応した](https://blog.n-z.jp/blog/2024-03-20-docker-cli-plugins.html)