tkhrsskの日記

技術ネタなど

Docker Hubのイメージサイズ

Docker Hubには公式・非公式含め、いろいろと便利そうなイメージが、 たくさんあがっています。

docker pullで、簡単に取得できるのはいいのですが、 これってpullし終わるまでイメージのサイズがわからないのでしょうか?

...なさそうなんで、いくつかpullしたイメージをメモ。

[2016/5/14追記] タグのページ見に行けばわかるようです。 https://hub.docker.com/r/library/redmine/tags/

イメージサイズ (pull後のdocker images)

基本イメージ

ubuntu              latest              5ba9dab47459        2 weeks ago         192.7 MB
centos              latest              dade6cb4530a        12 days ago         210.1 MB

一般的なコマンドを一通りいれるとこれくらいなのかな。

ミドルウェア

nginx               latest              4b5657a3d162        3 weeks ago         91.64 MB

100MB 切るとシンプルだなぁと思う。

Webアプリ系

Redmine
sameersbn/redmine   latest              4d0b53e01808        2 weeks ago         612.9 MB

→ よく紹介されているけど、起動しなかった... 以下、フロントエンドで起動したときのログ。

$ docker run -it -p 80:80 -v /home/core/redmine/files:/redmine/files -v /home/core/redmine/mysql:/var/lib/mysql sameersbn/redmine
ERROR:
  Please configure the database connection.
  Refer http://git.io/JkE-cw for more information.
  Cannot continue without a database. Aborting...

[2015/2/25追記]

単にDBサーバーが立ち上がってないだけでした。 公式ページを参考にMySQLサーバーのコンテナを立ち上げて、link指定したら、無事起動しました。

$ mkdir -p /opt/mysql/data
$ sudo chcon -Rt svirt_sandbox_file_t /opt/mysql/data
$ docker run --name=mysql -d \
  -e 'DB_NAME=redmine_production' -e 'DB_USER=redmine' -e 'DB_PASS=password'\
  -v /opt/mysql/data:/var/lib/mysql \
  sameersbn/mysql:latest
$ mkdir -p /opt/redmine/data
$ sudo chcon -Rt svirt_sandbox_file_t /opt/redmine/data
$ docker run --name=redmine -it --rm --link mysql:mysql \
  -v /opt/redmine/data:/home/redmine/data \
  sameersbn/redmine:2.6.2

Jenkins

jenkins             1.580.2             41001f44325b        6 weeks ago         661.5 MB   
jenkins             latest              41001f44325b        6 weeks ago         661.5 MB   
DevHub
ysaotome/devhub     latest              96b89a8369e1        8 weeks ago         857.8 MB

→ すんなり動きました!

永続化するためのディレクトリはどこだろう...

その他

Weave
zettio/weavetools   0.9.0               6c2dd751b59c        2 weeks ago         5.138 MB
zettio/weavetools   latest              6c2dd751b59c        2 weeks ago         5.138 MB
zettio/weave        0.9.0               efb52cb2a3b8        2 weeks ago         11.35 MB
zettio/weave        latest              efb52cb2a3b8        2 weeks ago         11.35 MB

→ 軽い!本当に小さなバイナリ入っているだけなんだろうなぁ。 イメージの中身、goでコンパイルされたたstaticなELFがひとつと、設定ファイル?が数個あるだけのようでした。

参考サイト

  • Dockerイメージのベストプラクティス

【翻訳】いいDockerイメージを構築するには? ーDockerfileのベストプラクティス | インフラ・ミドルウェア | POSTD

  • サイズの削減に関する記事。

気づいたらガジェ獣: docker exportとdocker importでdockerイメージのサイズを小さくする

docker exportは、最新のスナップショットを吐き出すのに対し、docker saveは履歴情 報も保存するのですね。

正確には、コンテナ(実行状態or実行結果)を保存するのが export、イメージを保存するのが saveのようです。