docker用にCentOS 6.5のbase imageを自作する

  • 83
    いいね
  • 4
    コメント
この記事は最終更新日から1年以上が経過しています。

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 securityDockerで自分専用の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で詳細ページが見られます。