独自コンテナイメージの作成
サイオステクノロジー杉崎です。
前回は、「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のコンテナイメージが作成されたと判断できます。
このようにコンテナイメージは簡単に作成することが出来ますので、皆さんも試してみては如何でしょうか?