ようへいの日々精進XP

よかろうもん

docker のオリジナルコンテナイメージを作ってみた

はじめに

  • LXC のコンテナイメージから作ろうと思ったがうまくいかなかった
  • まずはドキュメントに従ってやってみた

うまくいかなかった

LXC のコンテナディレクトリ以下で以下のようにして LXC コンテナイメージから Docker のコンテナイメージを作成してみた。

cd /var/lib/lxc/${コンテナ名}
sudo tar -cv . | sudo docker import - ${コンテナ名}

以下の赤線のようなエラーが出力されてうまく起動してくれない。

f:id:inokara:20130928205405p:plain


やってみた

ドキュメントでは Ubunturaring をセットアップする手順だったが、Debiansqueeze でやってみることにする。

debootstrap 発動!

まずは debootstrap を発動させる。

cd /tmp
mkdir test
cd test
sudo debootstrap squeeze squeeze

ちなみに bootstrap とは...

debootstrap is a tool which will install a Debian base system into a subdirectory of another, already installed system. It doesn't require an installation CD,
- via Debootstrap

適当なディレクトリに Debian の最小限パッケージを作ってくれるツール。

docker image 発動!

sudo su -
cd /tmp/test
tar -C squeeze -c . | docker import - squeeze

確認

docker images

f:id:inokara:20130928144354p:plain

出来たイメージで docker run する

docker run -i -t squeeze cat /etc/debian_version

あっと言う間に起動して /etc/debian_version を表示させている。

f:id:inokara:20130928145453p:plain

ちゃんと Debian squeeze がインストールが起動している。

build-essential をインストールする

docker run -i -t squeeze /bin/bash

で起動して...

apt-get -y update && apt-get install -y build-essential

build-essential をインストールして exit する。

コミット

docker ps -a

build-essential をインストールしたイメージの ID を確認してコミットする。

docker commit ${ID} inokappa/squeeze latest

そして

  • LXC コンテナイメージからはコンバート出来なかったけど素の Debian をセットアップ出来て良かった
  • 引き続き、作ったイメージを index.docker.io に登録してみたい