【EC2】Amazon Linux 2023 (arm64)にDocker EngineとDocker Composeをインストール

はじめに

前回、Amazon Linux 2 (aarch64)でDocker EngineおよびDocker Composeのインストールを試してみました。
【EC2】Amazon Linux 2 (aarch64)にDocker EngineとDocker Composeをインストール

その数日後にAmazon Linux 2023の一般提供が開始されたので、今回はこのバージョンでDocker EngineおよびDocker Composeのインストールを行い、Amazon Linux 2との手順の差分を確認してみました。

Amazon Linux 2023 – 長期サポート付きのクラウド最適化 Linux ディストリビューション

Amazon Linux 2とAmazon Linux 2023の違いは以下で確認可能です。
Comparing Amazon Linux 2 and Amazon Linux 2023

具体的な設定や操作方法は、Amazon Linux 2023のベースとなっているFedoraのドキュメントも参考になります。
Fedora Linux User Documentation

前提条件

以下条件のEC2インスタンスで検証しています。

  • インスタンスタイプ: t4g.micro
  • AMI: al2023-ami-2023.0.20230322.0-kernel-6.1-arm64
  • ネットワーク: インターネットに接続可能なパブリックサブネット
  • ソフトウェアバージョン
    • Docker Engine 20.10.17
    • Docker Compose 2.17.0

OSとカーネルのバージョンは以下の通りです。

$ cat /etc/system-release
Amazon Linux release 2023 (Amazon Linux)

$ uname -r
6.1.19-30.43.amzn2023.aarch64

Docker Engine

パッケージインストール

Amazon Linux 2と異なりExtras Libraryは存在しません。公式リポジトリからそのままDocker Engineをインストールします。

$ sudo dnf install -y docker
(略)
Installed:
  containerd-1.6.8-2.amzn2023.0.4.aarch64                                              
  docker-20.10.17-1.amzn2023.0.6.aarch64                                               
  iptables-libs-1.8.8-3.amzn2023.0.2.aarch64                                           
  iptables-nft-1.8.8-3.amzn2023.0.2.aarch64                                            
  libcgroup-3.0-1.amzn2023.0.1.aarch64                                                 
  libnetfilter_conntrack-1.0.8-2.amzn2023.0.2.aarch64                                  
  libnfnetlink-1.0.1-19.amzn2023.0.2.aarch64                                           
  libnftnl-1.2.2-2.amzn2023.0.2.aarch64                                                
  pigz-2.5-1.amzn2023.0.3.aarch64                                                      
  runc-1.1.3-1.amzn2023.0.2.aarch64                                                    

Complete!

サービス起動

Dockerサービスの自動起動有効化および起動を行います。

$ sudo systemctl enable --now docker
$ systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: disabled)
     Active: active (running) since Sat 2023-03-25 06:43:21 UTC; 13s ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
    Process: 27287 ExecStartPre=/bin/mkdir -p /run/docker (code=exited, status=0/SUCCE>
    Process: 27289 ExecStartPre=/usr/libexec/docker/docker-setup-runtimes.sh (code=exi>
   Main PID: 27290 (dockerd)
      Tasks: 8 (limit: 1016)
     Memory: 23.2M
        CPU: 285ms
     CGroup: /system.slice/docker.service
             └─27290 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd>
(略)

グループ設定

Amazon Linux 2023のOSユーザとしてデフォルトで作成されるec2-userを使用して、root権限無しでdockerコマンドを操作できるようにします。
Docker Engineインストール時に自動的に作成されるdockerグループにec2-userを追加します。

$ sudo usermod -aG docker ec2-user

992(docker)が所属グループに追加されていることを確認します。

$ id
uid=1000(ec2-user) gid=1000(ec2-user) groups=1000(ec2-user),4(adm),10(wheel),190(systemd-journal),992(docker) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

動作確認

ec2-userにログインしている状態で以下のコマンドが実行できればインストールは完了です。

$ docker info
Client:
 Context:    default
 Debug Mode: false

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 0
 Server Version: 20.10.17
 (略)

Docker Compose

実行ファイルの配置

Docker EngineのプラグインとしてDocker Composeの実行ファイルを配置します。
curlを使用して実行ファイルをインストールする際は、アーキテクチャがaarch64のファイルを指定するよう注意してください。

$ DOCKER_CONFIG=${DOCKER_CONFIG:-/usr/local/lib/docker}
$ sudo mkdir -p $DOCKER_CONFIG/cli-plugins
$ sudo curl -SL https://github.com/docker/compose/releases/download/v2.17.0/docker-compose-linux-aarch64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
$ sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose

動作確認

Docker Compose自体はサービスを持ちません。実行ファイルを配置した後はdockerコマンドの引数としてそのまま使用可能です。
以下コマンドが実行できればインストールは完了です。

$ docker compose version
Docker Compose version v2.17.0

参考情報

Docker Docs

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です