本記事では、
ConoHa VPS Dockerテンプレートの、
ConoHa VPS Ubnutn 20.04テンプレートとの違いを調査した結果を説明します。
背景の章にて調査に至った経緯を説明しますが、
単にConoHa VPS Ubnutn 20.04テンプレートとの違いを知りたい方や、
どちらを使おうか考えている方は、
ぜひご参考にしていただければと思います。
背景(調査に至った経緯)
以前に下記の記事を書きました。
この記事では、自分に合ったWordPress環境についていくつか構成の候補を取り上げており、
そのうちの一つとして、
④【少し難しい】VPS(IaaS)に自分でコンテナエンジン(Docker等)をインストールしてWordPressコンテナを使って構築する
という構成を取り上げました。
この構成では、
VPSで構築したOS環境にDockerエンジンをインストールするのですが、
私がよく使用しているConoHa VPSにはDockerテンプレートという、
VPS構築時にDockerがプリインストールされるテンプレートがあり、
これを使うメリットがあるのではないか?と考えました。
ただし、
ConoHa VPSのDockerテンプレートはベースとなるディストリビューションはUbuntu 20.04のみしか
選択できません。
よって、そもそもUbuntu 20.40が嫌だという場合は、
そもそも選択肢から外れることになります。
調査内容
前述の通り、
ConoHa VPSのDockerテンプレートは、ベースディストリビューションがUbuntu 20.04ですので、
Ubuntu 20.04テンプレート
と
Dockerテンプレート(ベースディストリビューションはUbuntu 20.04)
の2つのテンプレートの内容を調査することにしました。
調査項目は下記のようにしました。
- ディストリビューションのバージョン
- Debianパッケージの内容
- システムプロセスツリーの内容
以降でそれぞれの項目について、
テンプレート間の違いを説明します。
ディストリビューションのバージョン
各環境で、lsb_release -aコマンドを実行した結果です。
Ubuntu 20.04テンプレート
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.5 LTS
Release: 20.04
Codename: focal
Dockerテンプレート
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.4 LTS
Release: 20.04
Codename: focal
2つのテンプレート間で、
マイナーバージョンに違いがあることが分かりました。
Ubuntu 20.04テンプレートでは20.04.5 LTSへのマイナーアップデートに追従したが、
Dockerテンプレートでは追従できていない、といったところでしょうか。
ちなみに、本記事執筆時点での最新版は、20.04.6 LTSのようです。
Debianパッケージの内容
各環境で、dpkg -lコマンドを実行した結果のdiffを取ったものです。
順番は、
$ diff <ubuntu 20.04テンプレートの結果> <Dockerテンプレートの結果>
としています。
15a16
> apt-transport-https
44a46
> containerd.io
68a71,74
> docker-ce
> docker-ce-cli
> docker-ce-rootless-extras
> docker-scan-plugin
403c409
< libxmlb2:amd64
---
> libxmlb1:amd64
414,417c420,423
< linux-headers-5.4.0-131
< linux-headers-5.4.0-131-generic
< linux-headers-5.4.0-139
< linux-headers-5.4.0-139-generic
---
> linux-headers-5.4.0-110
> linux-headers-5.4.0-110-generic
> linux-headers-5.4.0-66
> linux-headers-5.4.0-66-generic
419,421c425
< linux-image-5.4.0-125-generic
< linux-image-5.4.0-131-generic
< linux-image-5.4.0-139-generic
---
> linux-image-5.4.0-110-generic
424,426c428
< linux-modules-5.4.0-125-generic
< linux-modules-5.4.0-131-generic
< linux-modules-5.4.0-139-generic
---
> linux-modules-5.4.0-110-generic
428,430c430
< linux-modules-extra-5.4.0-125-generic
< linux-modules-extra-5.4.0-131-generic
< linux-modules-extra-5.4.0-139-generic
---
> linux-modules-extra-5.4.0-110-generic
484a485
> pigz
590a592
> slirp4netns
前の調査項目でマイナーバージョンが異なることが分かっているため、
パッケージ内容もそれなりに違いがあると思われるため、一つ一つ細かく見ておりませんが、
Docker関連のパッケージ(”docker”と書いてあるもの)の差分が目立ちます。
Dockerテンプレートは、
Ubuntu 20.04テンプレートにDockerエンジンをインストールしたもの、
と想像して大きく外れていないと思われます。
システムプロセスツリーの内容
各環境で、rootアカウントでpstreeコマンドを実行した結果です。
Ubuntu 20.04テンプレート
systemd-+-ModemManager---2*[{ModemManager}]
|-accounts-daemon---2*[{accounts-daemon}]
|-acpid
|-2*[agetty]
|-atd
|-cron
|-dbus-daemon
|-f2b/server---4*[{f2b/server}]
|-irqbalance---{irqbalance}
|-multipathd---6*[{multipathd}]
|-networkd-dispat
|-ntpd---{ntpd}
|-polkitd---2*[{polkitd}]
|-qemu-ga
|-rsyslogd---3*[{rsyslogd}]
|-snapd---10*[{snapd}]
|-sshd---sshd---bash---pstree
|-systemd---(sd-pam)
|-systemd-journal
|-systemd-logind
|-systemd-network
|-systemd-resolve
|-systemd-timedat
|-systemd-udevd
|-udisksd---4*[{udisksd}]
`-unattended-upgr---{unattended-upgr}
Dockerテンプレート
systemd-+-ModemManager---2*[{ModemManager}]
|-accounts-daemon---2*[{accounts-daemon}]
|-acpid
|-2*[agetty]
|-atd
|-containerd---8*[{containerd}]
|-cron
|-dbus-daemon
|-dockerd---7*[{dockerd}]
|-f2b/server---4*[{f2b/server}]
|-irqbalance---{irqbalance}
|-multipathd---6*[{multipathd}]
|-networkd-dispat
|-ntpd---{ntpd}
|-polkitd---2*[{polkitd}]
|-qemu-ga
|-rsyslogd---3*[{rsyslogd}]
|-snapd---10*[{snapd}]
|-sshd---sshd---bash---pstree
|-systemd---(sd-pam)
|-systemd-journal
|-systemd-logind
|-systemd-network
|-systemd-resolve
|-systemd-udevd
|-udisksd---4*[{udisksd}]
`-unattended-upgr---{unattended-upgr}
違いが分かりづらいので、
下は結果のdiffを取ったものです。
順番は、
$ diff <ubuntu 20.04テンプレートの結果> <Dockerテンプレートの結果>
としています。
5a6
> |-containerd---8*[{containerd}]
7a9
> |-dockerd---7*[{dockerd}]
23d24
< |-systemd-timedat
Dockerテンプレートの方では、
containerdとdockerdが動作しているということで、
やはり、
Dockerテンプレートは、
Ubuntu 20.04テンプレートに追加でDockerエンジンが動作している、
と想像して大きく外れていないと思われます。
systemd-timedatというプロセスも見受けられますが、
システム時刻関連のプロセスということで、今回は特に注目しません。
結論
以上の結果を踏まえると、
Dockerテンプレートは、
Ubuntu 20.04テンプレートに対して
DockerエンジンがインストールされてDocker関連プロセスが起動しているもの、
と想像することができます。
それ以上でもそれ以下でもない、といった感じです。
コンテナを使ったシステム構築を考えている人は
Dockerエンジンをインストールすることの技術的ハードルは低いと言ってよいと思うので、
「Dockerエンジンのインストールの手間を省きたい」
という僅かなメリットしかDockerテンプレートにはないという印象です。
僅かなメリットでもある方が良いのですが、
前述のDockerテンプレートはベースディストリビューションとしてUbuntu 20.04しか選択できない、
という制約がだいぶユーザーを絞るように思います。
よって、
採用ディストリビューションはUbuntu 20.04でもよいという方にとっては、
Dockerテンプレートは採用するメリットがあると考えてよい、ということになります。
まとめ
ConoHa VPS Dockerテンプレートの、
ConoHa VPS Ubnutn 20.04テンプレートとの違いを調査した結果を説明しました。
ConoHa VPSを最安で使用する方法を下の記事で解説しています。
ぜひこちらもご覧ください。
ここまで読んでいただきありがとうございました。
コメント