zaki work log

作業ログやら生活ログやらなんやら

Docker PluginとしてDocker Compose (v2) のインストールとお試し実行 (arm64 / Oracle Cloud A1.Flex)

気が付いたらCompose v2がリリース版になってました。

github.com

これまでのようにdocker-composeコマンド単体でなく、Docker Pluginとして利用する形式になっています。
あとv1系のときはx86_64のバイナリしかなかったけど、arm64やs390xのバイナリも配布されるようになってるようです。
Linuxの場合は現状ではマニュアルインストールとなっており、必要なバイナリを所定のパスにダウンロードして利用します。

バイナリはReleaseページから。

github.com

インストール手順はDockerのドキュメント参照。 ただし、2021.9.29時点でまだバージョンがv2.0.0-rc.3になっているのでここをv2.0.0に置き換えて、アーキテクチャも環境に合わせる。今回はarm64で。

docs.docker.com

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がリリースバージョンになってるしこっちでよいかな。

zaki-hmkc.hatenablog.com