Kubernetes管理サービスGoogle Container Engine、Google Container Registryの概要と使い方、Fluentdによるログ監視Docker運用管理製品/サービス大全(4)(5/5 ページ)

» 2015年10月30日 05時00分 公開
[澤井健株式会社NTTデータ]
前のページへ 1|2|3|4|5       

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>
site/hello.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 .
タグ名:gcr.io/your-project-id/example-image

 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
        }]
      }]
    }
  }
}
testwebsite.json

 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」について解説します。

特集:Docker運用管理製品/サービス大全

数多く台頭しているDockerの運用管理に関する製品/サービスの特長、使い方を徹底解説する特集。



筆者紹介

澤井健

富山県出身。株式会社NTTデータに入社後、PostgresForestやHinemosの開発、保守、導入支援に携わり、今はHinemosのクラウドへの普及展開を進めている。休日は仕事を離れ、宝塚観劇のため日比谷や兵庫に訪れるなど趣味を満喫している。

  • 執筆履歴

Software Design plusシリーズ『Hinemos 統合管理[実践]入門』(共著:技術評論社)


前のページへ 1|2|3|4|5       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。