[Docker]OSのコンテナ比較


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」って思考には行き着かないし、理解不能。