ホステッドレジストリを活用すると、Dockerイメージをアップして管理するだけでなく、Dockerfileをアップロードし、ホステッドレジストリでDockerイメージをビルドすることも可能です。今回はその方方を具体的に見ていきます。
前回までは、Quey.ioにアップロードしたDockerイメージの管理について解説しました。今回は、Dockerイメージをアップロードすることなく、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」をクリックします。
すると、「Start Repository Build」のウィンドウが表示されるので、「Select file」をクリックし、手元のDockerfileを選択します。
手元にあるDockerfileを選択し、正常にロードできたら、以下のように「Dockerfile found and valid」のメッセージが表示されます。ウィンドウ右下の「Start Build」をクリックすると、Dockerfileを使ったDockerイメージのビルド処理がスタートします。
Dockerイメージのビルドが成功すると、管理画面上の「Build History」に緑色のチェックマークが付きます。もし、ビルドに失敗するとチェックマークは付きませんので、再度Dockerfileを確認してください。
管理画面上の「Build History」にある緑色のチェックマークの右側にあるビルドID(ここでは、上図の「572cebf7」)をクリックします。すると、Dockerfileの中身などを確認できます。下の図にあるようにDockerfileの中身を見ると、このDockerイメージは、CentOS 6.8のOSテンプレートを元に、パッケージを最新のものにアップデートし、5秒ごとにdateコマンドの出力結果を/root/date.logファイルを出力するコンテナを起動することが分かります。
では、Quay.ioによってビルドされたDockerイメージを入手してみましょう。Dockerイメージ名は、Quey.ioの管理画面の左側にある上から2つ目のタグのアイコンをクリックします。すると、TAG列に「latest」というタグ名が表示されています。このタグ名を使って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ファイルにログとして書き出すコンテナが起動できることが確認できました。
Copyright © ITmedia, Inc. All Rights Reserved.