🚀

Ubuntuのsnap版dockerでCompose V2を使う

2021/12/16に公開

要約

Ubuntu 20.04 LTS(server版や各種フレーバを含む)のsnap版dockerの場合は,次のコマンドでCompose V2が使えるようになります.

mkdir -p ~/snap/docker/current/.docker/cli-plugins/
curl -SL https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-linux-x86_64 -o ~/snap/docker/current/.docker/cli-plugins/docker-compose
chmod +x ~/snap/docker/current/.docker/cli-plugins/docker-compose

概要

Docker Compose V2をdocker公式ドキュメントの方法に従ってUbuntu 20.04 LTSへインストールしましたが,使うことができませんでした.

調べたところ,Ubuntuではパッケージからdockerをインストールする方法が複数あり,そのうちsnap版dockerをインストールしている場合にはCompose V2をインストールするプラグインディレクトリが異なることが分かりました.正しいディレクトリへプラグインをインストールすればCompose V2が使えるようになります.

Compose V2とは

Docker Composeはdockerの補助ツールの1つで,旧来は独立したdocker-composeコマンドがありました.しかし,dockerコマンドの機能強化に伴って,これまでdocker-composeコマンドが提供してきた機能がdockerコマンドのサブコマンドとして書き直され,docker composeとして実行できるようになりました.これがCompose V2と呼ばれています.

  • Compose V1: docker-compose (docker-composeコマンド)
  • Compose V2: docker compose (dockerコマンドのcomposeサブコマンド)

詳細: https://docs.docker.com/compose/cli-command/

Linuxの場合は,バイナリのプラグインをダウンロード・設置してインストールする方法が,docker公式ドキュメントで案内されています.

手順: https://docs.docker.com/compose/cli-command/#install-on-linux

Ubuntu 20.04 LTSにおける3種類のdockerパッケージ

Ubuntu 20.04 LTSでは,パッケージからdockerをインストールする方法として,主に次の3つの方法があります.

Ubuntu 20.04 LTSの標準的なインストール手順では,snap版dockerがインストールされます.インストールされているdockerがsnap版またはdeb版のどちらであるかは,次のコマンドにより調べることができます.

snap版dockerのインストール状況を調べる:

snap list docker

deb版dockerのインストール状況を調べる:

apt list --installed docker docker-ce docker.io

ここで,docker公式ドキュメントに従ってCompose V2をインストールすると,deb版dockerでは正しくインストールされて使用できますが,snap版dockerではCompose V2を使うことができません.snap版dockerではプラグインのディレクトリが異なっているためです.

Compose V2のインストール方法

プラグインをダウンロード・設置する際に,インストール先ディレクトリを正しく設定すれば解決します.

snap版dockerの場合

プラグインのインストールディレクトリを~/snap/docker/current/.docker/cli-plugins/にします.

mkdir -p ~/snap/docker/current/.docker/cli-plugins/
curl -SL https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-linux-x86_64 -o ~/snap/docker/current/.docker/cli-plugins/docker-compose
chmod +x ~/snap/docker/current/.docker/cli-plugins/docker-compose

deb版dockerの場合

プラグインのインストールディレクトリを~/.docker/cli-plugins/にします.これはdocker公式ドキュメントで示されている手順と同じです.

mkdir -p ~/.docker/cli-plugins/
curl -SL https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose
chmod +x ~/.docker/cli-plugins/docker-compose

どちらにも対応したい場合

両方のディレクトリにインストールするか,または,リンクを張ります.

まとめ

Ubuntu 20.04 LTSにCompose V2をインストール・使用する場合は,docker公式ドキュメントの手順では動作しない場合があります.その際は,プラグインのインストール先ディレクトリを変更すれば解決します.

GitHubで編集を提案

Discussion