現在位置: ホーム / Red Hat Ch. / Red Hat Blog / Red Hat Enterprise Linuxでの独自コンテナイメージの作成

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のコンテナイメージが作成されたと判断できます。

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

お問い合わせ

問い合わせボタン

RHEL サポート

最近の更新
Automation with Ansibleコース(DO407 :4日間)のご紹介 2017年04月26日
RHELで新しいgitやPython3を使うには? 2017年03月29日
AnsibleとRed Hat Identity Managementを併用すると便利 2017年02月28日
Red Hat Satellite 6でerrataを適用してみる 2016年11月28日
VMware環境上でのRed Hat Enterprise Linux 7.2以前から7.3へアップデート時の注意点と、その解説 2016年11月24日
RHEL4の延長サポートおよびRHEL5の通常サポート終了 2016年10月17日
Red Hat Enterprise Linuxの互換性維持 2016年08月31日
RED HAT FORUM 2016 Tokyo The power of participation -アイデアとテクノロジーが生むオープンイノベーションの破壊力- 2016年08月12日
Red Hat Network ClassicからRed Hat Subscription Managementへ移行のおねがい 2016年07月27日
ABRTで障害時の情報収集とレポートを自動化しよう 2016年06月03日
Red Hat Enterprise Linux 7、使ってますか? 2016年04月27日
Red Hat Developer Programに参加して開発者用サブスクリプションを入手しよう 2016年04月01日
Relax and Recoverでのシステム回復 2016年03月08日
Red Hat Insightsとは 2015年11月13日
Red Hat Enterprise Linuxを仮想化環境で動作させる時の注意点 2015年10月05日
RHEL7でpingをreniceしようとすると失敗する話 2015年08月31日
Red Hat Satellite使いはじめガイド 2015年08月20日
ELS? EUS? RHELの延長サポート製品について知ろう 2015年08月13日
Performance Co-Pilotでパフォーマンス測定を簡単にしよう 2015年08月06日
Red Hat Enterprise Linuxでの独自コンテナイメージの作成 2015年07月29日