第44回 Dockerfileを「Quay.io」で管理する古賀政純の「攻めのITのためのDocker塾」(1/2 ページ)

ホステッドレジストリを活用すると、Dockerイメージをアップして管理するだけでなく、Dockerfileをアップロードし、ホステッドレジストリでDockerイメージをビルドすることも可能です。今回はその方方を具体的に見ていきます。

» 2017年06月19日 12時00分 公開

 前回までは、Quey.ioにアップロードしたDockerイメージの管理について解説しました。今回は、Dockerイメージをアップロードすることなく、Dockerfileに関する管理手法について解説します。

ホステッドレジストリにDockerfileをアップロードしてみる

 ホステッドレジストリのQuay.ioには、Dockerイメージをアップロードすることなく、Dockerfileをアップロードし、ホステッドレジストリ側でDockerイメージをビルドすることも可能です。その具体的な操作手順を見てみましょう。

 まず、これまで使ってきたQuay.ioの「testrepo01」リポジトリの管理画面で、左側の上から4つ目のアイコンをクリックします。すると、「Repository Builds」の画面になります。この画面は、Dockerfileをアップロードする画面ですが、この時点では、まだDockerfileをアップロードしていませんので、画面上の「Build History」には、「No matching builds found」と表示されています。DockerfileをQuay.ioにアップロードするには、画面右上の「Start New Build」をクリックします。

Dockerfileをアップロードする画面 Dockerfileをアップロードする画面

 すると、「Start Repository Build」のウィンドウが表示されるので、「Select file」をクリックし、手元のDockerfileを選択します。

「Start New Build」のウィンドウが表示される 「Start Repository Build」のウィンドウが表示される
手元のDockerfileを選択する手元のDockerfileを選択する

 手元にあるDockerfileを選択し、正常にロードできたら、以下のように「Dockerfile found and valid」のメッセージが表示されます。ウィンドウ右下の「Start Build」をクリックすると、Dockerfileを使ったDockerイメージのビルド処理がスタートします。

読み込んだDockerfileが正常にロードされ、ビルドする準備が整った様子 読み込んだDockerfileが正常にロードされ、ビルドする準備が整った様子
Dockerfileが登録され、ビルド処理が開始すると、画面上の「Build History」にビルドIDやタグなどの情報が現れる Dockerfileが登録され、ビルド処理が開始すると、画面上の「Build History」にビルドIDやタグなどの情報が現れる

ビルドされたDockerイメージを確認する

 Dockerイメージのビルドが成功すると、管理画面上の「Build History」に緑色のチェックマークが付きます。もし、ビルドに失敗するとチェックマークは付きませんので、再度Dockerfileを確認してください。

Dockerイメージのビルドに成功した様子 Dockerイメージのビルドに成功した様子

 管理画面上の「Build History」にある緑色のチェックマークの右側にあるビルドID(ここでは、上図の「572cebf7」)をクリックします。すると、Dockerfileの中身などを確認できます。下の図にあるようにDockerfileの中身を見ると、このDockerイメージは、CentOS 6.8のOSテンプレートを元に、パッケージを最新のものにアップデートし、5秒ごとにdateコマンドの出力結果を/root/date.logファイルを出力するコンテナを起動することが分かります。

Dockerfileの中身や、ビルド手順、ビルドに使われたOSテンプレート情報へのリンクなどを確認 Dockerfileの中身や、ビルド手順、ビルドに使われたOSテンプレート情報へのリンクなどを確認

ビルドされたDockerイメージをQuay.ioから入手してみる

 では、Quay.ioによってビルドされたDockerイメージを入手してみましょう。Dockerイメージ名は、Quey.ioの管理画面の左側にある上から2つ目のタグのアイコンをクリックします。すると、TAG列に「latest」というタグ名が表示されています。このタグ名を使ってDockerイメージを入手します。

ビルドされたDockerイメージのタグ名を確認 ビルドされたDockerイメージのタグ名を確認

 ビルドされたDockerイメージを入手します。上の図では、タグ名が「latest」となっていますので、手元のDockerが稼働するホストOS上では、以下のように指定します。

local # docker pull quay.io/masazumi_koga/testrepo01:latest

 ダウンロードしたDockerイメージを確認します。

local # docker images
REPOSITORY                         TAG          IMAGE ID            ...    SIZE
quay.io/masazumi_koga/testrepo01   latest       4f6d0a1e9b02        ...    430 MB

 Dockerイメージ「quay.io/masazumi_koga/testrepo01:latest」がダウンロードできていることが分かります。では、Dockerイメージからコンテナを起動してみましょう。コンテナ名は、「c0003」としました。

local # docker run \
-itd \
--name c0003 -h c0003 \
quay.io/masazumi_koga/testrepo01:latest
local # docker exec -it c0003 tail -f /root/date.log
Mon May 15 05:44:49 UTC 2017
Mon May 15 05:44:54 UTC 2017
Mon May 15 05:44:59 UTC 2017
...

 Dockerfileの記述どおり、dateコマンドを5秒後ごとに実行し、/root/date.logファイルにログとして書き出すコンテナが起動できることが確認できました。

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ