LoginSignup
3
3

More than 5 years have passed since last update.

Docker で aobench をコンテナで動かす.

Posted at

Docker(LXC) でのアプリケーションアイソレーションやアプリケーションサンドボクシングの検証として aobench を動かしてみましょう.

Docker ですでに提供されている busybox イメージでは外部コンパイルされたバイナリがうまく動かなかったので, buildroot を利用して busybox 環境をまずは構築するところから始めます.

buildroot-2013.11.tar.bz2

をダウンロードして展開,

$ make menuconfig

として

  • x86_64 ターゲットを利用
  • glibc ランタイムを利用 
  • gcc 4.8.x ツールチェイン(optional)

にして save -> exit

して

make

をすると output/images に rootfs.tar というイメージが出来ます.
ただ, これだと docker ではそのまま動かせる環境になっていないようなので,

を参考にして image の fixup を行い, dietfs としてイメージを import しておきます.

aobench のビルド

コンテナの外(今回は git clone https://github.com/dotcloud/docker.git で手に入る ubuntu 12.04 環境)で aobench をコンパイルします.
(より確実には buildroot で生成されるツールチェインを使ったほうがいいでしょう)

$ gcc -O3 -o ao ao.c -lm
$ mkdir /home/vagrant/in
$ cp ao /home/vagrant/in/

/home/vagrant/in を persistent volume としてマウントして, 生成した dietfs イメージを起動します.

$ sudo docker run -i -v /home/vagrant/in:/in:ro -t dietfs /bin/sh
# /in/ao
Output ao.ppm

コンテナプロセスの中で aobench が実行できましたね!

aobench イメージ

aobench の入ったイメージを Docker index に上げました.

まとめ

数値計算指向のアプリも docker でバッチリ動きます.
busybox(buildroot)を利用することでディスクのオーバヘッドは 5~6 MB と, とても lightweight に保つことができました.

これでどこでも aobench が出来ますね! Happy aobench!

参考文献

3
3
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
3
3