Dockerベースイメージの特徴と比較・選び方

More than 1 year has passed since last update.

個人的にベースイメージとしての利用を検討したことがあるDockerイメージについて、それぞれの特徴を比較して選ぶために調べたことをまとめます。


TL;DR;

OS・イメージ毎に以下の点を考慮して、総合的に決める。


評価軸


  • イメージの生い立ち


    • 誰がどのようなフローで作ったイメージか



  • セキュリティ


    • 不要なパッケージの多さ、減らしやすさ


      • 基本的には不要パッケージが少ないほど潜在的なAttack Surfaceが減る



    • 脆弱性があることを検知できるか

    • 脆弱性対応状況が公開されているか

    • 何年セキュリティパッチが受けられるか



  • Dockerイメージのサイズ


    • 最小サイズ



  • アプリの実行環境を整えるまでに必要な手数


    • パッケージマネージャでインストールできるものの多さ、新しさ



  • (場合によっては)有償サポートが受けられるか

  • 開発者・運用者のそのOSに対する習熟度


    • 企業なら、既に運用しているOSがあれば




評価例(人や企業によらない部分のみ)


CentOS


公式centosイメージ

DockerHub: https://hub.docker.com/_/centos/

GitHub: https://github.com/CentOS/sig-cloud-instance-images


Debian


Docker公式debianイメージ

DockerHub: https://hub.docker.com/_/debian/

GitHub: https://github.com/tianon/docker-brew-debian


  • tianonさんとDebian開発者のpaultagさんによりメンテされている


    • tianonさん(Tianon Graviさん)は、InfoSiftr社のSVP of Operations

    • tianonさんはDocker公式ubuntuイメージのメンテナでもある



  • Docker Security Scanningで脆弱性情報を閲覧可能 https://hub.docker.com/r/library/debian/tags/


minideb

https://github.com/bitnami/charts


  • Bitnami社がメンテしている

  • Debianからコンテナに不要なEssentialパッケージをいくつか削除したもの

  • 「aptが使える最小のコンテナイメージ」を目指している


Ubuntu


Docker公式ubuntuイメージ

DockerHub: https://hub.docker.com/_/ubuntu/


appcontainers/ubuntu

ブログ: http://www.appcontainers.com/appcontainersubuntuxenial/

DockerHub: https://hub.docker.com/r/appcontainers/ubuntu/


  • 公式ubuntuイメージから記事に書かれている通り一部パッケージを削除して、export&loadしてレイヤーを一枚にしたもの


ubuntu-slim

Docker: gcr.io/google_containers/ubuntu-slim:0.3

GitHub: https://github.com/kubernetes/contrib/tree/master/images/ubuntu-slim


  • 公式ubuntuイメージからコンテナOSとして不要なものを削除して、1レイヤーにしたもの

  • 公式ubuntuイメージの半分ほどのサイズ

  • 削除されたパッケージ

  • 削除されたファイル

  • Kubernetesコミュニティでメンテされている

  • appcontainers/ubuntuより多くのパッケージが削除されているように見える(systemd等)


非公式のSnappy Ubuntu Core

ブログ1: http://andrea.corbellini.name/2015/03/25/running-ubuntu-snappy-inside-docker/

ブログ2: http://www.arvinep.com/2015/12/create-snappy-ubuntu-as-docker-image.html


  • 公式ubuntuイメージなどと違って、Ubuntuからrootfsのアーカイブが提供されていないので色々苦労しているみたい


参考