🐳
MacでDocker Desktopなしでdocker composeをdockerのサブコマンドとして使う方法
基本的にMacでdockerのサブコマンドとしてdocker composeを使いたい場合、公式のREADME.md に書かれているとおりDocker Desktopを使うと思います。
しかし、中には特定の事情によりDocker Desktopではなくcolimaなど別のランタイムを使ってDockerを使いたい方もいると思います。
今回は、Docker DesktopなしでMacでdocker composeをdockerのサブコマンドとして使用するための2つの方法を紹介します。
1. GitHubのリポジトリからバイナリをダウンロードして~/.docker/cli-pluginsに配置する
この方法では、次の手順に従って作業を行います。
- docker/compose リポジトリのリリースページ にアクセスします。
- ご自分の環境に一致するバイナリファイルをダウンロードします。
- 例えば、M1 Macの場合、
docker-compose-darwin-aarch64
を選択します。
- 例えば、M1 Macの場合、
- ダウンロードしたバイナリを
~/.docker/cli-plugins/
ディレクトリに配置し、実行権限を付与します。mkdir -p ~/.docker/cli-plugins mv docker-compose-darwin-* ~/.docker/cli-plugins/docker-compose chmod +x ~/.docker/cli-plugins/docker-compose
- 配置が完了したら、次のように動作を確認します。
docker compose version
基本この方法で良いのですが、たまに下記のような表示が出て起動できない場合があります。その場合は、2の方法を試してみてください。
2. Homebrewでdocker-composeをインストールし、そのバイナリのシンボリックリンクを~/.docker/cli-pluginsに貼る
この方法は、Homebrewを利用してバイナリを管理したい場合、もしくは1の方法が使えなかった場合に有用です。
-
Homebrewを使って
docker-compose
をインストールします。brew install docker-compose
-
インストールされた
docker-compose
のパスを確認します。brew --prefix docker-compose
ここで確認できたパスから、相対パスで
bin/docker-compose
に基本的にはバイナリが配置されています。私の場合は/opt/homebrew/opt/docker-compose/bin/docker-compose
に配置されていました。このパスは 4. で使います。 -
~/.docker/cli-plugins/
にシンボリックリンクを作成します。mkdir -p ~/.docker/cli-plugins ln -s $(brew --prefix docker-compose)/bin/docker-compose ~/.docker/cli-plugins/docker-compose
-
動作を確認します。
docker compose version
上記の2つの方法のいずれかを実行することで、Docker Desktopを使用せずにdocker compose
をサブコマンドとして使用できるようになります。
Discussion