気が付いたらCompose v2がリリース版になってました。
これまでのようにdocker-compose
コマンド単体でなく、Docker Pluginとして利用する形式になっています。
あとv1系のときはx86_64のバイナリしかなかったけど、arm64やs390xのバイナリも配布されるようになってるようです。
Linuxの場合は現状ではマニュアルインストールとなっており、必要なバイナリを所定のパスにダウンロードして利用します。
バイナリはReleaseページから。
インストール手順はDockerのドキュメント参照。
ただし、2021.9.29時点でまだバージョンがv2.0.0-rc.3
になっているのでここをv2.0.0
に置き換えて、アーキテクチャも環境に合わせる。今回はarm64
で。
Dockerがインストールされてる状態で以下実行(arm64の場合)。
$ mkdir -p ~/.docker/cli-plugins/ $ curl -SL https://github.com/docker/compose/releases/download/v2.0.0/docker-compose-linux-arm64 -o ~/.docker/cli-plugins/docker-compose $ chmod +x ~/.docker/cli-plugins/docker-compose
これでdocker compose
が実行できるようになります。(docker-compose
でなく)
$ docker compose version Docker Compose version v2.0.0
サンプル用Composeファイルは以下の通り。
$ cat docker-compose.yml version: '3' services: httpd: image: httpd ports: - 8080:80
$ docker compose up -d [+] Running 6/6 ⠿ httpd Pulled 4.9s ⠿ 896f18f54b28 Pull complete 2.1s ⠿ 678f4022827b Pull complete 2.9s ⠿ c18c6f886b61 Pull complete 3.2s ⠿ 8f8bb463f1da Pull complete 4.4s ⠿ 5590d606630f Pull complete 4.5s [+] Running 2/2 ⠿ Network compose_default Created 0.2s ⠿ Container compose-httpd-1 Started 0.6s
$ docker compose ps NAME COMMAND SERVICE STATUS PORTS compose-httpd-1 "httpd-foreground" httpd running 0.0.0.0:8080->80/tcp, :::8080->80/tcp
Oracle CloudのA1.FlexコンピュートインスタンスのOracle Linux 8とUbuntu20.04で確認。
どちらも同じ手順で実行確認。
つい先日arm64向けバイナリがないということでpip
を使ってインストールしたけど、v2がリリースバージョンになってるしこっちでよいかな。