2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Dockerイメージの選び方

2
Posted at

概要

Dockerのイメージを選ぼうとしたら同じバージョンでも slim とか alpine とかが付いていて、どれを選べばいいかよくわからない。
そこで代表的なイメージの種類と選び方をまとめてみた。

主要なイメージの種類

※ nginxを例とする

公式

公式が配布している最新バージョン(latest)や安定バージョン(stable)、実験バージョン(mainline)、あるいは特定バージョンごとに配布。
主に開発環境や本番環境で問題が起きることを嫌う場合に使う。

例: nginx:lates nginx:stable nginx:1.28.2 nginx:mainline

メリット

  • 開発に必要な一通りのパッケージが最初からそろっている。
  • 依存関係や互換性の問題が起きにくい。

デメリット

  • イメージのサイズが大きい
  • コンテナのビルドや起動時間はそれなりにかかる

Slim

名前に slim がついたイメージで、使用頻度の低いパッケージ排除した計量版。
本番環境で容量削減や高速化などに主眼を置いて構築したい場合に使用する。

例: nginx:stable-alpine-slim nginx:1.28-alpine-slim

メリット

  • 使用頻度の高いパッケージは一通りそろっている。
  • 従来のイメージより軽量かつ高速

デメリット

  • 依存関係の問題が発生しやすい
  • 開発や調査に必要なツールが不足しているので、障害時の手間が多い。

Alpine

名前に alpine がついたイメージ。 AlpineLinuxをベースとした軽量イメージでとにかくリソースを節約したい場合に使用する。

例: nginx:stable-alpine-slim nginx:1.28-alpine-slim

メリット

  • セキュリティを重視しつつ、必要最小限のパッケージのみ用意されている。
  • 軽量・最小構成のためコンテナのビルドや起動時間が高速になる

デメリット

  • 依存関係(特にglibc関連)の問題が起きやすい
  • 開発や調査に必要なツールが不足しているので、障害時の手間が多い。
  • 一部のパッケージやツールが使えない可能性がある

Debian系

ベースとなるディストリビューションがDebianのバージョン違いで用意されたイメージ。名前にそれぞれのバージョンのコードネームがついたイメージ。
新しいバージョンであるほどパッケージやツールのバージョンも新しく、セキュリティリスクも低い。また長期的なサポートが期待できる。

例: nginx:trixie nginx:stable-bookworm nginx:1.24.0-bullseye

コードネーム バージョン 読み
trixie v13 トリクシー
bookworm v12 ブックワーム
bullseye v11 ブルズアイ

選び方

  • 開発や本番環境で安定性や信頼性を重視したい
  • 依存関係や互換性の問題を避けたい
  • セキュリティや品質が保証されたイメージを使いたい
  • ドキュメントやサポートが充実している環境を求める

公式を選ぼう


  • 本番環境で容量削減や高速化を重視したい
  • 不要なパッケージを省いて、軽量なイメージを使いたい
  • 必要最低限のツールやパッケージだけで十分な時

Slimを選ぼう


  • とにかくリソースを節約したい
  • 軽量・最小構成で高速なビルドや起動を求める
  • セキュリティを重視し、必要最小限のパッケージだけで十分な時

Alpineを選ぼう

まとめ

ちゃんとした開発環境を整えたいなら公式版を選ぶのが無難。 ちょっと試したいぐらいならslimやaplineもあり。

本番環境ではケースバイケース。リソースと応相談。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?