グーグルは独自のDockerリポジトリとして「Google Container Registry」を持っています。このContainer Registryを使ってDockerイメージの登録、取得が可能です。
本稿の最後に、Container Registryの使用方法について記載します(参考)。
対象となるコンテナーイメージは「testwebsite」という名前にしています。testwebsiteは、「hello.html」のHTMLファイルを持ち、Apache HTTP Serverが動作します。Dockerファイルと同じフォルダーに「site」フォルダ−」が存在し、siteフォルダー内にhello.htmlを配置しております。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <head> <title>Hinemos World</title> </head> <body> <p>Hello, Hinemos World!</p> </body> </html>
Dockerfileの内容は下記の通りです。
FROM centos MAINTAINER j.i RUN yum update -y RUN yum install -y httpd RUN yum clean all ADD ./site/ /var/www/html/ EXPOSE 80 CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"]
まずは、Google Cloud SDKにAuth/project設定を行います。この環境にDockerをインストールします(Dockerのバージョンは1.6以上)。
gcloud auth login gcloud config set project containertest20150522
Dockerfileを作成します。
Dockerファイルを特殊なタグを付けてビルドします。2015年6月時点のベータ版ではDockerイメージをビルドしてプッシュする手順です。
docker build -t gcr.io/containertest20150522/testwebsite .
gcloud preview dockerでContainer Registryにプッシュします。
gcloud preview docker push gcr.io/containertest20150522/testwebsite
Container Registryに格納されたことを確認します。
先ほど格納したtestwebsiteイメージを使用します。
testwebsiteイメージで使用する20080ポートを解放します。
gcloud compute firewall-rules create allow-20080 --allow=tcp:20080
Podを作成するためのJSONファイルを作成します。
{ ""id"": ""testwebsite"", ""kind"": ""Pod"", ""apiVersion"": ""v1beta1"", ""desiredState"": { ""manifest"": { ""version"": ""v1beta1"", ""containers"": [{ ""name"": ""testwebsite"", ""image"": ""gcr.io/containertest20150522/testwebsite"", ""ports"": [{ ""containerPort"": 80, ""hostPort"": 20080 }] }] } } }
Podを作成します。
kubectl create -f testwebsite.json
Podが作成されたことを確認します。
kubectl get pods
ブラウザーでNodeの20080ポートにアクセスし、動作していることを確認します。
次回は、AWSが提供するDockerオーケストレーションツール「Amazon EC2 Container Service」とDocker管理サービスとしての「AWS Elastic Beanstalk」について解説します。
富山県出身。株式会社NTTデータに入社後、PostgresForestやHinemosの開発、保守、導入支援に携わり、今はHinemosのクラウドへの普及展開を進めている。休日は仕事を離れ、宝塚観劇のため日比谷や兵庫に訪れるなど趣味を満喫している。
Software Design plusシリーズ『Hinemos 統合管理[実践]入門』(共著:技術評論社)
Copyright © ITmedia, Inc. All Rights Reserved.