Amazon Linux 2023のDockerイメージを使う

# What's？

Amazon Linux 2023をとりあえず試してみたいと思ったのですが、Docker HubにDockerイメージが公開されていたので、こちらを軽く動かしてみました。

[amazonlinux / Docker Hub](https://hub.docker.com/_/amazonlinux)

といっても、動かすことが目的というよりは、Amazon Linux 2023についてある程度情報を見ておきたいというのが主要な目的だったりします。

# Amazon Linux 2023

Amazon Linux 2023は、2023年3月にGAになったLinuxディストリビューションです。

https://aws.amazon.com/jp/blogs/news/amazon-linux-2023-a-cloud-optimized-linux-distribution-with-long-term-support/

Amazon Linux 2023を使うには、Amazon EC2でAMIを指定するか、Amazon ECRまたはDocker Hubで公開されているDockerイメージを使うことになります。

> Amazon Linux 2023 の開始方法は、他の Linux ディストリビューションと何ら変わりはありません。EC2 run-instances API、AWS コマンドラインインターフェイス (AWS CLI)、または AWS マネジメントコンソール、および当社が提供する 4 つの Amazon Linux 2023 AMI のいずれかを使用できます。

> Amazon Linux 2023 は Docker イメージとしても配布されています。Amazon Linux 2023 コンテナイメージは、Amazon Linux 2023 AMI に含まれているのと同じソフトウェアコンポーネントから構築されています。コンテナイメージは、どの環境でも Docker ワークロードのベースイメージとして使用できます。EC2 のアプリケーションのために Amazon Linux を使用している場合は、Amazon Linux コンテナイメージを使用してアプリケーションをコンテナ化できます。
> 
> これらのイメージは、Amazon Elastic Container Registry (Amazon ECR) と Docker Hub から入手できます。

Amazon Linux 2023のドキュメントは、こちらです。

https://docs.aws.amazon.com/ja_jp/linux/al2023/ug/what-is-amazon-linux.html

気になるところを、少しメモしておきます。

多くの情報は、Amazon Linux 2との違いのページを見るとわかりそうな感じです。

https://docs.aws.amazon.com/ja_jp/linux/al2023/ug/compare-with-al2.html

## サポート期間

サポート期間は5年のようです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309669/33ec177c-9e7e-9248-5f34-c7228339b535.png)

https://docs.aws.amazon.com/ja_jp/linux/al2023/ug/release-cadence.html

2年後には、次のバージョンがリリースされるんですね。

## ベースOS

ベースのOSは、Fedoraのようです。

> AL2023 is RPM-based and includes components sourced from multiple versions of Fedora and other distributions, such as CentOS 9 Stream.

[Comparing Amazon Linux 2 and Amazon Linux 2023 / Sourced from multiple upstreams](https://docs.aws.amazon.com/ja_jp/linux/al2023/ug/compare-with-al2.html#building-on-fedora)

Fedora 34、35、36のコンポーネントが含まれているそうですが、特定のFedoraのバージョンと直接比較ができないとも書かれています。

> The Generally Available (GA) version of AL2023 isn't directly comparable to any specific Fedora release. The AL2023 GA version includes components from Fedora 34, 35, and 36. Some of the components are the same as the components in Fedora and some are modified. Other components more closely resemble the components in CentOS 9 Streams or were developed independently. 

https://docs.aws.amazon.com/ja_jp/linux/al2023/ug/relationship-to-fedora.html

## カーネル

カーネルは、kernel.orgからLTSを独自に選んでいるようです。

> The Amazon Linux kernel is sourced from the long-term support options that are on kernel.org, chosen independently from Fedora.

Amazon Linux 2023のカーネルのバージョンは6.1です。

https://docs.aws.amazon.com/ja_jp/linux/al2023/ug/naming-and-versioning.html

Fedora 37よりも新しいカーネルです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309669/d828de43-cb35-8d8d-3034-c486f901545c.png)

https://en.wikipedia.org/wiki/Fedora_Linux_release_history

参考）Ubuntu Linux

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309669/78fe20c3-a2bc-9966-4c92-323373565735.png)

https://ja.wikipedia.org/wiki/Ubuntu

このあたりからしても、確かに直接Fedoraと比較はできなさそうです。

## パッケージのバージョン管理

Amazon Linux 2023では、リリースバージョンでパッケージが固定されるようです。

https://docs.aws.amazon.com/ja_jp/linux/al2023/ug/deterministic-upgrades.html

リリースバージョンについては、こちら。

https://docs.aws.amazon.com/ja_jp/linux/al2023/ug/naming-and-versioning.html

以下のようなバージョン形式になるようです。

- 2023.0.20230301
- 2023.1.20230601
- 2023.2.20230901

異なるリリースバージョンを対象に、パッケージを更新する場合は、こちら。

https://docs.aws.amazon.com/ja_jp/linux/al2023/ug/managing-repos-os-updates.html

## EPEL

Amazon Linux 2023では、EPELはサポートしていません。

> However, AL2023 doesn't support EPEL or EPEL-like repositories.

[Comparing Amazon Linux 2 and Amazon Linux 2023 / Extra Packages for Enterprise Linux (EPEL)](https://docs.aws.amazon.com/ja_jp/linux/al2023/ug/compare-with-al2.html#epel)

Fedoraベースであり、パッケージ管理コマンドも`dnf`なのですが、パッケージ管理自体はけっこう独特なようなのでこのあたりは覚えておいた方が良さそうですね。

## AWS CLI v2

Amazon Linux 2023には、AWS CLI v2が含まれます。

[Comparing Amazon Linux 2 and Amazon Linux 2023 / AWS CLI v2](https://docs.aws.amazon.com/ja_jp/linux/al2023/ug/compare-with-al2.html#awscli2)

## その他

SELinuxが有効になっていたり、OpenSSLのバージョンが3になっていたり、glibcがバージョンアップしていたりといろいろあるので、とにかくこのページをよく見るのがよいかなと。

https://docs.aws.amazon.com/ja_jp/linux/al2023/ug/compare-with-al2.html

# Dockerイメージを使ってみる

最後に、Docker Hubで公開されているAmazon Linux 2023のDockerイメージを使ってみます。

## 環境

環境はこちらです。

```shell
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.2 LTS
Release:        22.04
Codename:       jammy


$ uname -srvmpio
Linux 5.15.0-76-generic #83-Ubuntu SMP Thu Jun 15 19:16:32 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
```

```shell
$ docker version
Client: Docker Engine - Community
 Version:           24.0.4
 API version:       1.43
 Go version:        go1.20.5
 Git commit:        3713ee1
 Built:             Fri Jul  7 14:50:55 2023
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          24.0.4
  API version:      1.43 (minimum version 1.12)
  Go version:       go1.20.5
  Git commit:       4ffc614
  Built:            Fri Jul  7 14:50:55 2023
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.21
  GitCommit:        3dce8eb055cbb6872793272b4f20ed16117344f8
 runc:
  Version:          1.1.7
  GitCommit:        v1.1.7-0-g860f061
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
```

## Amazon Linux 2023のDockerイメージを実行する

Amazon Linux 2023のDockerイメージを起動。

```shell
$ docker container run -it --rm --name amazonlinux amazonlinux:2023.0.20230614.0
bash-5.2#
```

`/etc/os-release`。

```shell
# cat /etc/os-release
NAME="Amazon Linux"
VERSION="2023"
ID="amzn"
ID_LIKE="fedora"
VERSION_ID="2023"
PLATFORM_ID="platform:al2023"
PRETTY_NAME="Amazon Linux 2023"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2023"
HOME_URL="https://aws.amazon.com/linux/"
BUG_REPORT_URL="https://github.com/amazonlinux/amazon-linux-2023"
SUPPORT_END="2028-03-01"
```

リリースバージョンの確認。

```shell
# rpm -q system-release
system-release-2023.0.20230614-0.amzn2023.noarch
```

カーネルはホストのものを見ているので、ここはバージョンが合わないことになります。

```shell
# uname -srvmpio
Linux 5.15.0-76-generic #83-Ubuntu SMP Thu Jun 15 19:16:32 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
```

インストールされているパッケージ一覧。

```shell
# dnf list --installed
Installed Packages
alternatives.x86_64                                                                       1.15-2.amzn2023.0.2                                                                       @System
amazon-linux-repo-cdn.noarch                                                              2023.0.20230614-0.amzn2023                                                                @System
audit-libs.x86_64                                                                         3.0.6-1.amzn2023.0.2                                                                      @System
basesystem.noarch                                                                         11-11.amzn2023.0.2                                                                        @System
bash.x86_64                                                                               5.2.15-1.amzn2023.0.2                                                                     @System
bzip2-libs.x86_64                                                                         1.0.8-6.amzn2023.0.2                                                                      @System
ca-certificates.noarch                                                                    2023.2.60-1.0.amzn2023.0.2                                                                @System
coreutils-single.x86_64                                                                   8.32-30.amzn2023.0.3                                                                      @System
crypto-policies.noarch                                                                    20220428-1.gitdfb10ea.amzn2023.0.2                                                        @System
curl-minimal.x86_64                                                                       8.0.1-1.amzn2023                                                                          @System
dnf.noarch                                                                                4.12.0-2.amzn2023.0.4                                                                     @System
dnf-data.noarch                                                                           4.12.0-2.amzn2023.0.4                                                                     @System
elfutils-default-yama-scope.noarch                                                        0.188-3.amzn2023.0.2                                                                      @System
elfutils-libelf.x86_64                                                                    0.188-3.amzn2023.0.2                                                                      @System
elfutils-libs.x86_64                                                                      0.188-3.amzn2023.0.2                                                                      @System
expat.x86_64                                                                              2.5.0-1.amzn2023.0.2                                                                      @System
file-libs.x86_64                                                                          5.39-7.amzn2023.0.2                                                                       @System
filesystem.x86_64                                                                         3.14-5.amzn2023.0.3                                                                       @System
gawk.x86_64                                                                               5.1.0-3.amzn2023.0.2                                                                      @System
gdbm-libs.x86_64                                                                          1:1.19-2.amzn2023.0.2                                                                     @System
glib2.x86_64                                                                              2.73.2-680.amzn2023.0.3                                                                   @System
glibc.x86_64                                                                              2.34-52.amzn2023.0.2                                                                      @System
glibc-common.x86_64                                                                       2.34-52.amzn2023.0.2                                                                      @System
glibc-minimal-langpack.x86_64                                                             2.34-52.amzn2023.0.2                                                                      @System
gmp.x86_64                                                                                1:6.2.1-2.amzn2023.0.2                                                                    @System
gnupg2-minimal.x86_64                                                                     2.3.7-1.amzn2023.0.4                                                                      @System
gpgme.x86_64                                                                              1.15.1-6.amzn2023.0.3                                                                     @System
grep.x86_64                                                                               3.8-1.amzn2023.0.4                                                                        @System
json-c.x86_64                                                                             0.14-8.amzn2023.0.2                                                                       @System
keyutils-libs.x86_64                                                                      1.6.3-1.amzn2023                                                                          @System
krb5-libs.x86_64                                                                          1.20.1-8.amzn2023.0.2                                                                     @System
libacl.x86_64                                                                             2.3.1-2.amzn2023.0.2                                                                      @System
libarchive.x86_64                                                                         3.5.3-2.amzn2023.0.2                                                                      @System
libassuan.x86_64                                                                          2.5.5-1.amzn2023.0.2                                                                      @System
libattr.x86_64                                                                            2.5.1-3.amzn2023.0.2                                                                      @System
libblkid.x86_64                                                                           2.37.4-1.amzn2023.0.3                                                                     @System
libcap.x86_64                                                                             2.48-2.amzn2023.0.3                                                                       @System
libcap-ng.x86_64                                                                          0.8.2-4.amzn2023.0.2                                                                      @System
libcom_err.x86_64                                                                         1.46.5-2.amzn2023.0.2                                                                     @System
libcomps.x86_64                                                                           0.1.18-1.amzn2023.0.2                                                                     @System
libcurl-minimal.x86_64                                                                    8.0.1-1.amzn2023                                                                          @System
libdnf.x86_64                                                                             0.67.0-1.amzn2023.0.5                                                                     @System
libffi.x86_64                                                                             3.1-28.amzn2023.0.2                                                                       @System
libgcc.x86_64                                                                             11.3.1-4.amzn2023.0.3                                                                     @System
libgcrypt.x86_64                                                                          1.10.1-7.amzn2023.0.1                                                                     @System
libgomp.x86_64                                                                            11.3.1-4.amzn2023.0.3                                                                     @System
libgpg-error.x86_64                                                                       1.42-1.amzn2023.0.2                                                                       @System
libidn2.x86_64                                                                            2.3.2-1.amzn2023.0.2                                                                      @System
libmodulemd.x86_64                                                                        2.13.0-2.amzn2023.0.2                                                                     @System
libmount.x86_64                                                                           2.37.4-1.amzn2023.0.3                                                                     @System
libnghttp2.x86_64                                                                         1.51.0-1.amzn2023                                                                         @System
librepo.x86_64                                                                            1.14.2-1.amzn2023.0.4                                                                     @System
libreport-filesystem.noarch                                                               2.15.2-2.amzn2023.0.2                                                                     @System
libselinux.x86_64                                                                         3.4-5.amzn2023.0.2                                                                        @System
libsepol.x86_64                                                                           3.4-3.amzn2023.0.3                                                                        @System
libsigsegv.x86_64                                                                         2.13-2.amzn2023.0.2                                                                       @System
libsmartcols.x86_64                                                                       2.37.4-1.amzn2023.0.3                                                                     @System
libsolv.x86_64                                                                            0.7.22-1.amzn2023.0.2                                                                     @System
libstdc++.x86_64                                                                          11.3.1-4.amzn2023.0.3                                                                     @System
libtasn1.x86_64                                                                           4.19.0-1.amzn2023.0.1                                                                     @System
libunistring.x86_64                                                                       0.9.10-10.amzn2023.0.2                                                                    @System
libuuid.x86_64                                                                            2.37.4-1.amzn2023.0.3                                                                     @System
libverto.x86_64                                                                           0.3.2-1.amzn2023.0.2                                                                      @System
libxcrypt.x86_64                                                                          4.4.33-7.amzn2023                                                                         @System
libxml2.x86_64                                                                            2.10.4-1.amzn2023.0.1                                                                     @System
libyaml.x86_64                                                                            0.2.5-5.amzn2023.0.2                                                                      @System
libzstd.x86_64                                                                            1.5.2-1.amzn2023.0.2                                                                      @System
lua-libs.x86_64                                                                           5.4.4-3.amzn2023.0.2                                                                      @System
lz4-libs.x86_64                                                                           1.9.4-1.amzn2023.0.2                                                                      @System
mpfr.x86_64                                                                               4.1.0-7.amzn2023.0.2                                                                      @System
ncurses-base.noarch                                                                       6.2-4.20200222.amzn2023.0.3                                                               @System
ncurses-libs.x86_64                                                                       6.2-4.20200222.amzn2023.0.3                                                               @System
npth.x86_64                                                                               1.6-6.amzn2023.0.2                                                                        @System
openssl-libs.x86_64                                                                       1:3.0.8-1.amzn2023.0.2                                                                    @System
p11-kit.x86_64                                                                            0.24.1-2.amzn2023.0.2                                                                     @System
p11-kit-trust.x86_64                                                                      0.24.1-2.amzn2023.0.2                                                                     @System
pcre2.x86_64                                                                              10.40-1.amzn2023.0.2                                                                      @System
pcre2-syntax.noarch                                                                       10.40-1.amzn2023.0.2                                                                      @System
popt.x86_64                                                                               1.18-6.amzn2023.0.2                                                                       @System
python3.x86_64                                                                            3.9.16-1.amzn2023.0.3                                                                     @System
python3-dnf.noarch                                                                        4.12.0-2.amzn2023.0.4                                                                     @System
python3-gpg.x86_64                                                                        1.15.1-6.amzn2023.0.3                                                                     @System
python3-hawkey.x86_64                                                                     0.67.0-1.amzn2023.0.5                                                                     @System
python3-libcomps.x86_64                                                                   0.1.18-1.amzn2023.0.2                                                                     @System
python3-libdnf.x86_64                                                                     0.67.0-1.amzn2023.0.5                                                                     @System
python3-libs.x86_64                                                                       3.9.16-1.amzn2023.0.3                                                                     @System
python3-pip-wheel.noarch                                                                  21.3.1-2.amzn2023.0.5                                                                     @System
python3-rpm.x86_64                                                                        4.16.1.3-12.amzn2023.0.6                                                                  @System
python3-setuptools-wheel.noarch                                                           59.6.0-2.amzn2023.0.3                                                                     @System
readline.x86_64                                                                           8.1-2.amzn2023.0.2                                                                        @System
rpm.x86_64                                                                                4.16.1.3-12.amzn2023.0.6                                                                  @System
rpm-build-libs.x86_64                                                                     4.16.1.3-12.amzn2023.0.6                                                                  @System
rpm-libs.x86_64                                                                           4.16.1.3-12.amzn2023.0.6                                                                  @System
rpm-sign-libs.x86_64                                                                      4.16.1.3-12.amzn2023.0.6                                                                  @System
sed.x86_64                                                                                4.8-7.amzn2023.0.2                                                                        @System
setup.noarch                                                                              2.13.7-3.amzn2023.0.2                                                                     @System
sqlite-libs.x86_64                                                                        3.40.0-1.amzn2023.0.2                                                                     @System
system-release.noarch                                                                     2023.0.20230614-0.amzn2023                                                                @System
tzdata.noarch                                                                             2023c-1.amzn2023.0.1                                                                      @System
xz-libs.x86_64                                                                            5.2.5-9.amzn2023.0.2                                                                      @System
yum.noarch                                                                                4.12.0-2.amzn2023.0.4                                                                     @System
zlib.x86_64                                                                               1.2.11-33.amzn2023.0.4                                                                    @System
```

OpenSSLは、Dockerイメージにはあらかじめインストールされていないようです。

```shell
# openssl version
bash: openssl: command not found
```

glibcのバージョン。

```shell
# ldd --version
ldd (GNU libc) 2.34
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.
```

systemdも使えないので、ちゃんと確認したかったらAmazon EC2でやるべきですね。  
結局、ISOはリリースされないのでしょうか？

https://repost.aws/questions/QUczEIqJ02R169_9HX2QTSlQ/amazon-linux-2023-on-premise

最後に試しにと、Amazon Correttoをインストール。

```shell
# dnf install java-17-amazon-corretto-headless
# java --version
openjdk 17.0.7 2023-04-18 LTS
OpenJDK Runtime Environment Corretto-17.0.7.7.1 (build 17.0.7+7-LTS)
OpenJDK 64-Bit Server VM Corretto-17.0.7.7.1 (build 17.0.7+7-LTS, mixed mode, sharing)
```