CLOVER🍀

That was when it all began.

Docker Compose V2をインストールする

これは、なにをしたくて書いたもの?

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に慣れていきましょう。