ytooyamaのブログ

サーバ構築とか、仕事で発見したこととか、趣味のこととかを書いています。

コンテナーではなくAlpine LinuxとUbuntu、Debianをインストールした場合の比較

Alpine LinuxはDockerのアプリケーションコンテナーのベースOSとしての利用が進んでおり、汎用のOSからAlpine Linuxに変更することによりDockerイメージの圧縮が期待されますが、じゃあこれをマシンで使ったときはどうなのかということで比較してみました。

8GBの仮想ストレージを割り当てた仮想マシンにOSとSSHサーバーをインストールした場合の比較です。

Alpine Linux 3.6.2
/dev/sda3      ext4      5.8G  398.4M  5.1G   7% /

Debian 9.2
/dev/sda1      ext4      6.9G  702M  5.8G  11% /

Ubuntu Server 16.04.3
/dev/sda1      ext4      6.8G  1.8G  4.7G  28% /

やはり最小インストール+SSHサーバーだとAlpine Linux 3.6.2が一番ストレージの消費は少ないですが、標準で利用されるログインシェルがashなところがわたし的には慣れないところとBashを追加するのは次のようにちょっと作業がいるところを考えると、Debianがいいんじゃないかなと思います。標準サポートしているパッケージ数はDebianUbuntuのほうがずっと多いですからね。

Alpine Linuxでログインシェルをbashに変更

# vi /etc/apk/repositories
/v3.6/community       #リポジトリーURLのcommunityのコメントを外す

# apk install bash shadow     #chshコマンドとBashをインストール
# chsh -s /bin/bash                #シェルを変更
# reboot

ちなみにAlpine Linuxのいいところは

次のようなところは良いところだと思います。

  • busyboxベースで超軽量
  • インストールISOのサイズが小さい
  • インストールが割と簡単 (setup-alpine)
  • 割と新しいパッケージが揃っている
  • ドキュメントが充実

ちなみにDockerイメージのサイズは

Dockerのイメージのサイズ比較は次のとおりです。圧倒的に小さいのがわかります。

% docker image list |awk 'NR>1 {print $1,$2,$7}'
ubuntu 16.04 122MB
ubuntu 17.10 93.8MB
debian 9 100MB
alpine latest 3.97MB