WSL+UbuntuとOracle LinuxのDockerで比較。
目次
- イメージサイズ比較
- メモリ使用量比較(Host OS: WSL+Ubuntu)
- メモリ使用量比較(Host OS: Oracle Linux)
結果
イメージサイズが小さいものをベースにしても、追加して肥大化させた場合はAlpineとUbuntuに差は感じられず。
Alpineは小さいAPIサーバーを作るときに利用するのが良いかも。
Oracle Linuxはメモリ使用量、イメージサイズ共に不利。
イメージサイズ比較
# docker images REPOSITORY TAG IMAGE ID CREATED SIZE alpine latest d7d3d98c851f 5 days ago 5.53MB oraclelinux 9-slim 9504731f1a33 2 weeks ago 126MB oraclelinux 9 3b55bf3c19be 2 weeks ago 217MB ubuntu latest 27941809078c 6 weeks ago 77.8MB
サイズは小さい。コンテナ起動。
# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e7aeb5c30f87 ubuntu:latest "/bin/sh" 17 seconds ago Up 17 seconds ubuntu-latest 963df771562c alpine:latest "/bin/sh" 33 seconds ago Up 33 seconds alpine-latest 8d349cef98dc oraclelinux:9-slim "/bin/sh" About a minute ago Up About a minute oraclelinux-9-slim fd3dd312dcde oraclelinux:9 "/bin/sh" About a minute ago Up About a minute oraclelinux-9
メモリ使用量比較(Host OS: WSL+Ubuntu)
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS e7aeb5c30f87 ubuntu-latest 0.00% 588KiB / 31.06GiB 0.00% 726B / 0B 0B / 0B 1 963df771562c alpine-latest 0.00% 536KiB / 31.06GiB 0.00% 796B / 0B 0B / 0B 1 8d349cef98dc oraclelinux-9-slim 0.00% 1000KiB / 31.06GiB 0.00% 796B / 0B 0B / 0B 1 fd3dd312dcde oraclelinux-9 0.00% 976KiB / 31.06GiB 0.00% 1.02kB / 0B 0B / 0B 1
Alpine、Ubuntuの順でメモリ使用量が小さいけど、誤差レベル。
Oracle Linux 9はノーマルとslimでサイズの違いはあっても、メモリ使用量の違いはない。
念のため、Oracle Linux 9でのコンテナ状況を確認。
Dockerはgoで開発されているようだし、ディストリビューション依存コードはないと思うけど、ランタイムレベルはわからないので…。
メモリ使用量比較(Host OS: Oracle Linux)
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS 36af4ab3cbec ubuntu-latest 0.00% 372KiB / 15.26GiB 0.00% 656B / 0B 0B / 0B 1 143e842a5a62 alpine-latest 0.00% 412KiB / 15.26GiB 0.00% 656B / 0B 0B / 0B 1 aae962d6a0d6 oraclelinux-9-slim 0.00% 848KiB / 15.26GiB 0.01% 656B / 0B 0B / 0B 1 7cced009af22 oraclelinux-9 0.00% 836KiB / 15.26GiB 0.01% 726B / 0B 0B / 0B 1
Ubuntu、Alpineの順でメモリ使用量が小さいけど、やはり誤差レベル。
Alpineが人気らしいけど、イメージサイズくらいしかメリットがない。環境で苦労するデメリットを考えた場合、「何でもAlpine」って思考には行き着かないし、理解不能。