初めに
Docker Hub に公開されている Docker 公式の Node.js イメージにはさまざまなバージョンがあります.
(Node.js コンテナイメージ URL : https://hub.docker.com/_/node)
その中にはバージョン名が,15.5.0-buster-slim
のように15.5.0
等の数字とbuster-slim
等の文字列を組み合わせたものや,dubnium-stretch-slim
のように文字列だけのものがあります.
数字部分はNode.jsのバージョンであることが予測できるのですが,文字列部分はどういった意味があるのかさっぱりわかりませんでした.
そこで今回は文字列部分にどういった意味があるのかをまとめました.
結論
文字列部分には,Node.js の LTS※ サポートのあるバージョンを表す単語と,Linux のディストリビューションを表す単語が含まれることがわかりました.
※ LTS = Long Time Support
Node.jsのLTSサポートのあるバージョンを表す単語
単語 | 意味 |
---|---|
fermium | Node.js 14.x.x の LTS のあるバージョン |
erbium | Node.js 12.x.x の LTS のあるバージョン |
dubnium | Node.js 10.x.x の LTS のあるバージョン |
Linuxのディストリビューションを表す単語
単語 | 意味 |
---|---|
alpine | ファイルサイズを重視したディストリビューション,非常にサイズが小さい |
buster | Debian のバージョン 10 |
strech | Debian のバージョン 9 |
slim | 処理系なしの軽量版,自身で必要なパッケージを取得する必要がある |
例えば,文字列部分がbuster-slim
となっているバージョンは,Debian のバージョン 10 の処理系なしの軽量版のディストリビューションを使ったイメージです.
また,コンテナのサイズはalpine < slim < その他
となっています.
コンテナのサイズだけ考えると alpine が最も優秀なように思えますが,alpine はパッケージ管理ソフトが apt ではないことや,Python のイメージを使用する際は alpine を選択すると実行速度が大幅に遅くなる等の問題があるようです.
そのため,やりたいことに合わせてディストリビューションを使い分けるのが良いかと思います.
参考資料
Debianのバージョン一覧 (URL : https://wiki.debian.org/DebianReleases)
まとめ
Docker Hub に公開されているDocker公式のNode.jsイメージの文字列部分の調査をしました.
今回の調査で,例えば,dubnium-stretch-slim
は,Node.jsのバージョンは10.x.xで,Debian9の軽量版であることがわかりました.
私自身Docker初心者でコンテナのサイズも気にしていないので,無難にbuster
を使用しようと思います.