コンテナー¶
AlmaLinuxのコンテナーイメージが公開されています。 サポートされているリリースのすべてのイメージは毎月、またはセキュリティ修正が必要な場合に更新されます。
- Docker Hub: https://hub.docker.com/_/almalinux
- Quay.io: https://quay.io/repository/almalinux/almalinux
最小構成イメージ microdnfパッケージマネージャを使用し、限定されたパッケージセットを含む、シンプルなイメージです。独自の依存関係がバンドルされているアプリケーション(NodeJS、Pythonなど)用に設計されています。almalinux:minimal タグは常に最新バージョンのミニマルイメージで、メジャーリリース (例: almalinux:8-minimal) とマイナーリリース (例: almalinux:8.4-minimal) のタグも用意されています。
プラットフォームイメージ フル機能のDNFスタックと、find、tar、vi など基本的なツールを備えた汎用イメージです。almalinux:latest タグは常に最新の安定版リリースです。メジャーリリースとマイナーリリースには、そのバージョンのタグも付けられます (例: almalinux:8 や almalinux:8.4 など)。
最小構成の利用例¶
almalinux:8-minimalイメージをベースに、Python 3.9をインストールしてバージョン表示をするだけのコンテナです。パッケージのインストールコマンドはdnf
ではなく、microdnf
を使います。
Dockerfileはこんな感じです。
FROM almalinux:8-minimal
RUN set -x \
&& microdnf install -y python39 \
&& microdnf clean all
ENTRYPOINT ["python3"]
CMD ["-V"]
ビルドしまして…
$ docker build -t test/python .
Sending build context to Docker daemon 313.4MB
Step 1/4 : FROM almalinux:8-minimal
---> b819e27a2e69
Step 2/4 : RUN set -x && microdnf install -y python39 && microdnf clean all
---> Running in 6db4264e47cb
+ microdnf install -y python39
Downloading metadata...
Downloading metadata...
Downloading metadata...
Package Repository Size
Installing:
expat-2.2.5-4.el8.x86_64 baseos 113.1 kB
gdbm-libs-1:1.18-1.el8.x86_64 baseos 61.7 kB
libnsl2-1.2.0-2.20180605git4a062cf.el8.x86_64 baseos 58.9 kB
libtirpc-1.1.4-5.el8.x86_64 baseos 113.6 kB
python39-3.9.6-2.module_el8.5.0+2571+54860423.x86_64 appstream 32.2 kB
python39-libs-3.9.6-2.module_el8.5.0+2571+54860423.x86_64 appstream 8.6 MB
python39-pip-20.2.4-6.module_el8.5.0+2571+54860423.noarch appstream 2.1 MB
python39-pip-wheel-20.2.4-6.module_el8.5.0+2571+54860423.noarch appstream 1.3 MB
python39-setuptools-50.3.2-4.module_el8.5.0+2571+54860423.noarch appstream 890.9 kB
python39-setuptools-wheel-50.3.2-4.module_el8.5.0+2571+54860423.noarch appstream 507.5 kB
Transaction Summary:
Installing: 10 packages
Reinstalling: 0 packages
Upgrading: 0 packages
Obsoleting: 0 packages
Removing: 0 packages
Downgrading: 0 packages
Enabling module streams:
python39:3.9
Downloading packages...
Running transaction test...
Installing: libtirpc;1.1.4-5.el8;x86_64;baseos
Installing: libnsl2;1.2.0-2.20180605git4a062cf.el8;x86_64;baseos
Installing: python39-setuptools-wheel;50.3.2-4.module_el8.5.0+2571+54860423;noarch;appstream
Installing: python39-pip-wheel;20.2.4-6.module_el8.5.0+2571+54860423;noarch;appstream
Installing: gdbm-libs;1:1.18-1.el8;x86_64;baseos
Installing: expat;2.2.5-4.el8;x86_64;baseos
Installing: python39-libs;3.9.6-2.module_el8.5.0+2571+54860423;x86_64;appstream
Installing: python39;3.9.6-2.module_el8.5.0+2571+54860423;x86_64;appstream
Installing: python39-setuptools;50.3.2-4.module_el8.5.0+2571+54860423;noarch;appstream
Installing: python39-pip;20.2.4-6.module_el8.5.0+2571+54860423;noarch;appstream
Complete.
+ microdnf clean all
Complete.
Removing intermediate container 6db4264e47cb
---> af1c0e56643a
Step 3/4 : ENTRYPOINT ["python3"]
---> Running in e16f3f3cfcb2
Removing intermediate container e16f3f3cfcb2
---> a6bfd35583df
Step 4/4 : CMD ["-V"]
---> Running in 33491ecb853f
Removing intermediate container 33491ecb853f
---> 4f82321ea687
Successfully built 4f82321ea687
Successfully tagged test/python:latest
実行します。
$ docker run --rm test/python
Python 3.9.6
ビルドイメージサイズは160MBとなりました。
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
test/python latest c9a4fe0b2f99 2 hours ago 160MB
土台でよく使われそうなイメージを相対的に見ると、いまのところminimalでも大きい方になりそうです。(実際はサイズだけではなく色々比較する要素があるので、利用側の目的やポリシーとのバランスで選択することになると思います)
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
debian bullseye-slim dfeb831cef5f 2 weeks ago 80.4MB
alpine latest c059bfaa849c 3 weeks ago 5.59MB
almalinux 8-minimal b819e27a2e69 4 weeks ago 102MB
almalinux 8 4ca63ce1d8a9 4 weeks ago 198MB
ubuntu focal ba6acccedd29 2 months ago 72.8MB