これは、なにをしたくて書いたもの?
Docker Compose V2がGAになったというので、こちらに移ろうかな、ということで。
Announcing Compose V2 General Availability - Docker
Docker Compose V2について
Docker Compose V2のGAをアナウンスしているブログは、こちら。
Announcing Compose V2 General Availability - Docker
GAがリリースされたのは、2022年4月26日のようです。
Docker Compose V2が最初にリリースされたのは、2021年6月のようですね。
Docker Compose V1はどうなるかというと、非推奨となり、次のマイルストーンまでは優先度の高いセキュリティパッチと重大なバグのみが
適用されます。
We’ve now marked Compose V1 as deprecated. Only high-priority security patches and critical bug fixes will apply to V1 until the next milestone.
そして、1年後(2023年4月)にはEOLとなるようです。
Docker Compose V2への移行はDocker Desktopを使っていれば自動的に行われているようですが、自分はLinuxを使っていて、
かつDocker Desktopも使用していないのでプラグインとして手動でインストールすることになりそうです。
What if I use Linux?
Docker Desktop for Linux is now in beta and includes Compose V2. Alternatively, you can manually install Docker Compose V2 for Linux. In Moby v20.10.13, we’ve included compose-plugin as an optional Docker CLI plugin for easier installation.
Docker(Moby) 20.10.13以降であれば簡単にインストールできるみたいです。
Docker Compose V2のドキュメントは、こちら。
Compose V2 | Docker Documentation
では、Docker Compose V2をインストールしてみましょう。
環境
今回の環境は、こちらです。
$ docker version Client: Docker Engine - Community Version: 20.10.14 API version: 1.41 Go version: go1.16.15 Git commit: a224086 Built: Thu Mar 24 01:48:02 2022 OS/Arch: linux/amd64 Context: default Experimental: true Server: Docker Engine - Community Engine: Version: 20.10.14 API version: 1.41 (minimum version 1.12) Go version: go1.16.15 Git commit: 87a90dc Built: Thu Mar 24 01:45:53 2022 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.5.11 GitCommit: 3df54a852345ae127d1fa3092b95168e4a88e2f8 runc: Version: 1.0.3 GitCommit: v1.0.3-0-gf46b6ba docker-init: Version: 0.19.0 GitCommit: de40ad0
Docker Compose V2をインストールする
ドキュメントに従って、Docker Compose V2をインストールしてみましょう。
Install Docker Compose | Docker Documentation
前提条件としては、Docker EngineがインストールされていればOKです。
現時点での最新のDocker Compose V2のバージョンは、2.5.0のようです。
インストール方法は以下の2つがあります。
- Docker CLIのプラグインとしてDocker Compose V2をインストールする
- インストール先はユーザー別(
$HOME/.docker/cli-plugins)か、全ユーザーを対象とする(
/usr/local/lib/docker/cli-plugins`)の2箇所から選択
- インストール先はユーザー別(
- スタンドアロンな実行可能バイナリとしてDocker Compose V2をインストールする
今回は、Docker CLIのプラグインとしてインストールし、かつ/usr/local/lib/docker/cli-plugins
ディレクトリにインストールすることにします。
以下のコマンドを実行して、/usr/local/lib/docker/cli-plugins
ディレクトリにdocker-compose
バイナリをダウンロード。
$ sudo mkdir -p /usr/local/lib/docker/cli-plugins $ sudo curl -SL https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-linux-x86_64 -o /usr/local/lib/docker/cli-plugins/docker-compose
実行権限を付与します。
$ sudo chmod a+x /usr/local/lib/docker/cli-plugins/docker-compose
バージョン確認。
$ docker compose version Docker Compose version v2.5.0
OKですね。
コマンドは、docker-compose
コマンドではなく、docker compose
コマンドになるようです。
もっとも、docker-compose
として実行したい場合は、スタンドアロンな実行可能バイナリとしてインストールすればよいみたいですが。
動作確認してみる
最後に、軽く動作確認してみましょう。
気づいていなかったのですが、Docker Composeの設定ファイルの名前はcompose.yaml
とするのが良さそうですね。
Compose file is compose.yaml (preferred) or compose.yml in working directory. Compose implementations SHOULD also support docker-compose.yaml and docker-compose.yml for backward compatibility. If both files exist, Compose implementations MUST prefer canonical compose.yaml one.
Compose specification / Compose file
使用できる名前は、以下のようです。
compose.yaml
compose.yml
docker-compose.yaml
docker-compose.yml
ただ、docker-compose.yaml
とdocker-compose.yml
は後方互換性のためにサポートしているだけのようです。
今回は、1種類のコンテナで簡単に済ませます。
compose.yaml
services: infinispan: image: infinispan/server:13.0.9.Final environment: USER: ispn-user PASS: password deploy: replicas: 3
Infinispan Server 13を、3 Node起動してみましょう。
$ docker compose up
Infinispan Serverが動作しているコンテナのうちのひとつにアクセスして、Web UIでクラスター内のNode数を確認。
OKですね。
これから、ちょっとずつDocker Compose V2に慣れていきましょう。