グーグルは独自の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 統合管理[実践]入門』(共著:技術評論社)
所要時間わずか10分で「Docker」を体験しよう――Azureで始めるDocker入門
Linux/OSSに不慣れでも大丈夫! WindowsでDockerを扱う際のポイント
Docker代替のコンテナーランタイム「Rocket」をCoreOSが公開
Docker、そしてCloud FoundryとPaaSの価値とは
レッドハットが発表したOpenShift Enterprise 3は「Dockerを知らなくても使える」基盤
米グーグルのDockerコンテナ管理サービスが一般提供開始Copyright © ITmedia, Inc. All Rights Reserved.