Kubernetes管理サービスGoogle Container Engine、Google Container Registryの概要と使い方、Fluentdによるログ監視:Docker運用管理製品/サービス大全(4)(5/5 ページ)
数多く台頭しているDockerの運用管理に関する製品/サービスの特長、使い方を徹底解説する特集。今回は、Google Cloud Platformで動くKubernetesの管理サービスであるGKEや、グーグル独自のDockerリポジトリであるGoogle Container Registryの概要や主な機能、環境構築方法、使い方について。
Google Container Registryの使用方法
グーグルは独自の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"]
Container Registryのセットアップ
まずは、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に格納されたことを確認します。
Container Registryからイメージを取得してPodを作成
先ほど格納した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の「EC2 Container Service」「Elastic Beanstalk」について
次回は、AWSが提供するDockerオーケストレーションツール「Amazon EC2 Container Service」とDocker管理サービスとしての「AWS Elastic Beanstalk」について解説します。
筆者紹介
澤井健
富山県出身。株式会社NTTデータに入社後、PostgresForestやHinemosの開発、保守、導入支援に携わり、今はHinemosのクラウドへの普及展開を進めている。休日は仕事を離れ、宝塚観劇のため日比谷や兵庫に訪れるなど趣味を満喫している。
- 執筆履歴
Software Design plusシリーズ『Hinemos 統合管理[実践]入門』(共著:技術評論社)
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 所要時間わずか10分で「Docker」を体験しよう――Azureで始めるDocker入門
2014年から急速に注目度が増しているコンテナー型仮想化技術「Docker」。すでに多くのLinuxで利用可能な技術ですが、次期Windows Serverでもサポートされる予定です。Dockerとはどのようなものなのか、一度、実際に触って体験してみてはいかがでしょうか。 - Linux/OSSに不慣れでも大丈夫! WindowsでDockerを扱う際のポイント
本連載第31回は「Azureで始めるDocker入門」を掲載しました。掲載後、すぐに「Docker 1.6」がリリースされたので、意図したわけではありませんが、タイムリーな記事になったと思います。今回は、その記事でも紹介した「Docker Client for Windows」をフォローアップします。 - Docker代替のコンテナーランタイム「Rocket」をCoreOSが公開
CoreOSがDocker代替のシンプルなコンテナーランタイムを公開。Dockerの当初の目的であるシンプルなコンテナーを目指すプロトタイプだ。 - Docker、そしてCloud FoundryとPaaSの価値とは
Docker人気を踏まえたとき、Cloud Foundryはどのように位置付けられるのか。PaaSの最終的な価値とは何なのか。AWSとの競合とは。Cloud Foundryの責任者である米PivotalのJames Watters氏に聞いた。 - レッドハットが発表したOpenShift Enterprise 3は「Dockerを知らなくても使える」基盤
レッドハットが2015年7月22日に国内発表したPaaS製品「OpenShift Enterprise 3」の最大の狙いは、Dockerを知らなくてもアプリケーションの開発・運用ができるようにすることだという。ここでは、レッドハットの日本法人の説明に基づき、OpenShift Enterprise 3を紹介する。 - 米グーグルのDockerコンテナ管理サービスが一般提供開始
米グーグルがGoogle Cloud Platform上で提供しているDockerコンテナオーケストレーション/管理サービス、Google Container Engineが2015年8月26日、ベータ段階を終了、一般提供が開始された。毎週20億以上のコンテナを立ち上げているグーグルの経験に基づくサービスだとしている。