Public docker images · dotcloud/docker WikiにdockerオフィシャルなCentOS 6.4のbase imageがあります。
でもCentOS 6.5のbase imageが欲しいし、適宜カスタマイズしたbase imageを自作したいところです。
Create a Base Image - Docker Documentationに作り方の説明があり、CentOS用のスクリプトdocker/contrib/mkimage-rinse.sh at master · dotcloud/dockerもあります。
また、Building a RHEL/CentOS Docker base image – devops and security、Dockerで自分専用のDebianイメージを作る - ただのにっき(2013-12-13)、Ubuntuならdockerのカスタムベースイメージを作成する - @znz blogという記事も見つけました。
さらに探すと、Official CentOS base image · Issue #290 · dotcloud/dockerにdockerオフィシャルなCentOS 6.4 base imageを作成したスクリプトが載っていました。こちらのほうがシンプルなのでこれを使うことにします。
CentOSのミラーのURLをftp.riken.jpに変更しCentOS 6.5用に編集して、保存します。ここではcent65.shという名前にしました。
#!/bin/bash
MIRROR_URL="http://ftp.riken.jp/Linux/centos/6.5/os/x86_64/"
MIRROR_URL_UPDATES="http://ftp.riken.jp/Linux/centos/6.5/updates/x86_64/"
yum install -y febootstrap xz
febootstrap -i bash -i coreutils -i tar -i bzip2 -i gzip -i vim-minimal -i wget -i patch -i diffutils -i iproute -i yum centos centos65 $MIRROR_URL -u $MIRROR_URL_UPDATES
touch centos65/etc/resolv.conf
touch centos65/sbin/init
tar --numeric-owner -Jcpf centos-65.tar.xz -C centos65 .
CentOS 6.5上で上記のスクリプトを実行します。
$ ./cent65.sh
作成したbase imageを登録するには以下のコマンドを実行します。
$ cat centos-65.tar.xz | sudo docker import - local/centos:6.5
試しに以下のようにechoコマンドを実行すると問題なく実行できました。
$ docker run local/centos:6.5 echo 'hello world'
docker indexに自作したbase imageを登録
他のマシンでも使いたいので、 https://index.docker.io/ に登録します。仮想環境構築に docker を使う - apatheia.infoに説明があります。公式ドキュメントだとShare Images via Repositories - Docker Documentationのあたりです。
docker indexにsignupしてアカウント作成
ブラウザで https://index.docker.io/ を開き、右上のsignupのリンクをクリックしてフォームに必要事項を入力して[sign up]ボタンを押します。登録確認のメールが届くのでメール内のリンクをクリックして登録を完了します。
base imageを登録
仮想環境構築に docker を使う - apatheia.infoの詳細の手順で登録します。
$ docker ps -a -notrunc
でcommitしたいイメージのIDを調べます。
$ docker commit -author="Hiroaki Nakamura <hnakamur@gmail.com>" -m="CentOS 6.5 x86_64 minimal" b7f2422dc993801dbda0b566a5dd515aa7af0d792f9159c56f16c6035492d1c4 hnakamur/centos:6.5
のようにしてcommitします (イメージのIDは適宜変更してください)。
あとは
sudo docker push hnakamur/centos
とpushします。
Search | Docker Indexでhnakamurで検索してみるとhnakamur: Search Results | Docker Indexという結果になり、hnakamur/centos Repository | Docker Indexで詳細ページが見られます。