Red Hat Enterprise Linuxでの独自コンテナイメージの作成

Docker上で動作するコンテナイメージは『docker-buildコマンド』と、『Dockerfile』を作成することで、カスタマイズして作成することができます。 今回は、この2つを使って簡単なコンテナイメージを作成してみようと思います。

独自コンテナイメージの作成

サイオステクノロジー杉崎です。
前回は、「Red Hat Enterprise LinuxでのDocker利用方法」の中で、Dockerって何?という記事を書かせていただきました。今回は、さらに一歩進めた内容で、Dockerを紹介をさせていただきます。

Dockerfileの作成

『Dockerfile』に必要な内容を記述することで独自のコンテナイメージを作成することができます。
それでは、最低限の記述でコンテナイメージを作成してみましょう。
『Dockerfile』に、以下の内容を記述するだけで、doucker-buildコマンドは実行することができます。

# cat Dockerfile
From centos
MAINTAINER test<test@test.com>

《From centos》で、利用するコンテナイメージとして《CentOS》を選択したことになります。
《From fedora》した場合《fedora》を選択したことになります。
「MAINTAINER test<test@test.com>』 で、作成するコンテナイメージの管理者を設定します。

コンテナイメージを作成

コンテナを作成するときには、『docker-buildコマンド』を使用します。
簡単にイメージを作成するには、以下のパラメータのみで作成することができます。

 # docker build -t [ {イメージ名} [ : {タグ名} ] ] {Dockerfileのあるディレクトリ}

それでは、実際にdocker-buildを使ってみましょう。実行例の様に入力し”Enter”を押してみましょう。

# docker build -t centos-test .
Sending build context to Docker daemon 12.29 kB
Sending build context to Docker daemon 
Step 0 : FROM centos
    == snip ==
Status: Downloaded newer image for docker.io/centos:latest
 ---> 7322fbe74aa5
Step 1 : MAINTAINER test<test@test.com>
 ---> Running in 97c22992c485
 ---> ad6a0dee9cda
Removing intermediate container 97c22992c485
Successfully built ad6a0dee9cda

Successfully built 〜 が出力されたことから、『docker-buildコマンド』を利用してのコンテナイメージの作成は成功したことになります。

では、『docker-imagesコマンド』を使って、ローカルに作成されたコンテナイメージの結果を見てみましょう。

# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
centos-test         latest              ad6a0dee9cda        About an hour ago   172.2 MB
docker.io/centos    latest              7322fbe74aa5        5 weeks ago         172.2 MB

実行結果から、centos-testが作成されていることが確認できます。

コンテナイメージの起動

コンテナイメージを起動してみましょう。
起動コマンドに使用するコマンドは、docker-runコマンドになります。
簡単にイメージを起動するには、以下のパラメータのみで作成することができます。

 # docker run -i -t [ {イメージ名} [ : {タグ名} ] ] /bin/bash

それでは、実際にdocker-runを使ってみましょう。

# docker run -i -t centos-test /bin/bash
[root@localhost ~]# docker run -i -t centos-test /bin/bash
    == snip ==
[root@ca1d9f6746ab /]#

プロンプトが表示されれたことで、コンテナイメージが起動した事になります。
では起動したコンテナイメージがCentOSであるかを確認する為に、確認の一例として、/etc/redhat-releaseの内容を確認してみましょう。

# cat /etc/redhat-release 
CentOS Linux release 7.1.1503 (Core)

“CentOS Linux release 7.1.1503” と表示されていることから、CentOS 7.1 が起動している事が確認できます。

バージョン指定のコンテナイメージを作成する場合

タグ名に、バージョンとすることで任意のバージョンのコンテナイメージを作成することができます。
以下は、CentOS 6.6 のコンテナイメージを作成する場合の、Dockerfile になります。

# cat Dockerfile 
From centos:6.6
MAINTAINER test<test@test.com>

『Dockerfile』更新後に、『docker-buildコマンド』にてコンテナイメージを作成します。
タグ名に、バージョン番号を入れる事で作成したコンテナイメージの区別ができます。今回は、”6.6″ とバージョンを入れて作成します。

# docker build -t centos-test:6.6 .
Sending build context to Docker daemon 12.29 kB
Sending build context to Docker daemon 
Step 0 : FROM centos:6.6
   == snip ==
Step 1 : MAINTAINER test<test@test.com>
 ---> Running in f580b080006f
 ---> 92592636623e
Removing intermediate container f580b080006f
Successfully built 92592636623e

『docker-imagesコマンド』を使って、ローカルに作成されたコンテナイメージの結果を見てみます。
《centos-test:6.6》が作成されている事が解ります。

# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED              VIRTUAL SIZE
centos-test         6.6                 92592636623e        About a minute ago   202.6 MB
docker.io/centos    6.6                 8b44529354f3        3 months ago         202.6 MB

docker-runコマンドを使って、実際、CentOS 6.6 のイメージが作成出来ているか確認してみましょう。
今回も、redhat-releaseの中身でバージョンの確認をします。

# docker run -i -t centos-test:6.6 /bin/bash
[root@01cd50d320f7 /]# cat /etc/redhat-release 
CentOS release 6.6 (Final)

redhat-release の中が、CentOS release 6.6 となっている事から、CentOS 6.6のコンテナイメージが作成されたと判断できます。

このようにコンテナイメージは簡単に作成することが出来ますので、皆さんも試してみては如何でしょうか?