読者です 読者をやめる 読者になる 読者になる

DockerHubのUbuntuのタグの違い

infra

Ubuntu を使う場合、多くの人は最新の LTS(Long Term Support)である 14.04 を選択するはず。
でも DockerHub の Ubuntu 公式のリポジトリをみると 14.04 でもタグが複数あってどれを選ぶべきなのか迷うので、確認してみた。結論は「同じもの」だった。
ubuntu Repository | Docker Hub Registry - Repositories of Docker Images

14.04 のタグ一覧

ちなみに Ubuntu 14.04 LTS は 2014年4月17日リリースで、そのちょっとしたバージョンアップ版である 14.04.1 は 2014年7月25日にリリースされてる。

確認

ubuntu

これは ubuntu:latest へのリンクのようだ。

$ docker run ubuntu /bin/cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.1 LTS"

ubuntu:14.04

古いままなのかと思ったら、ちゃんと "Ubuntu 14.04.1 LTS" になってる。

$ docker run ubuntu:14.04 /bin/cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.1 LTS"

ubuntu:14.04.1

そのまま。

$ docker run ubuntu:14.04.1 /bin/cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.1 LTS"

ubuntu:trusty

開発コードである trusty を指定してもいっしょ。

$ docker run ubuntu:trusty /bin/cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.1 LTS"

ubuntu:latest

Ubuntu のリリース済の最新は 14.10(Utopic Unicorn)だけど、ubuntu:latest は LTS のみを指す模様。LTS は 2 年間隔でリリースされるため、16.04 がでたタイミングで変更されるはず。

$ docker run ubuntu:latest /bin/cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.1 LTS"

ということで

ubuntuubuntu:latest だと 2 年後に挙動が変わるので、ubuntu:14.04 を使うのがいいと思う。trusty は開発コードだから聞きなれてない人も多そう。