【EC2】Amazon Linux 2023 (arm64)にDocker EngineとDocker Composeをインストール
Contents
はじめに
前回、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