「Google Cloudではじめるデザイナ/プログラマのためのDocker実践入門」 ハンズオン資料

  • 130
    いいね
  • 0
    コメント

このドキュメントは、「Google Cloudではじめるデザイナ/プログラマのためのDocker実践入門 」勉強会のハンズオン用資料です。

ハンズオンのスライドはこちらです。
詳細については、こちらを参照してください。
Docs.com: docs.com/asashiho

このハンズオンでは、次の流れでDockerの実行環境を構築していきます。


構築する環境の構成は次の通りです。

1. Dockerイメージ作成

サンプルのダウンロード(2)

$ git clone https://github.com/asashiho/docker-handson.git

サンプルの構成(1)

$ ls docker-handson/

Dockerfile

$ vi docker-handson/v1.0/Dockerfile

Dockerイメージの作成

$ cd docker-handson/v1.0
$ docker build -t docker-sample:v1.0 .

Dockerイメージの確認

$ docker images

やってみよう

$ cd ~/docker-handson/v1.1
$ docker build -t docker-sample:v1.1 .

2.Dockerイメージ公開

プロジェクトIDの設定

$ GCP_PROJECT_ID=$(gcloud config list project --format "value(core.project)")
 
$ echo $GCP_PROJECT_ID

Dockerイメージにtag設定

$ docker tag docker-sample:v1.0 gcr.io/$GCP_PROJECT_ID/docker-sample:v1.0
$ docker tag docker-sample:v1.1 gcr.io/$GCP_PROJECT_ID/docker-sample:v1.1

Dockerイメージの公開

$ gcloud docker -- push gcr.io/$GCP_PROJECT_ID/docker-sample:v1.0
$ gcloud docker -- push gcr.io/$GCP_PROJECT_ID/docker-sample:v1.1

Dockerイメージ公開の確認

$ gcloud docker -- search gcr.io/$GCP_PROJECT_ID

3. Docker実行環境の構築~仮想マシン1台構成の場合~

Docker実行環境構築

$ docker-machine create --driver google \
  --google-project $GCP_PROJECT_ID \
  --google-zone asia-northeast1-a \
  --google-machine-type n1-standard-1 \
  --google-machine-image https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/images/ubuntu-1404-trusty-v20161109 \
  webserver

仮想マシンへのログイン

$ cat /etc/redhat-release

Google Cloud利用のための設定

$ export GCP_PROJECT_ID=<ご自身のプロジェクトID>
$ sudo gcloud components update
$ sudo gcloud config set project $GCP_PROJECT_ID

Dockerイメージのダウンロード

$ sudo gcloud docker -- pull gcr.io/$GCP_PROJECT_ID/docker-sample:v1.0
$ sudo gcloud docker -- pull gcr.io/$GCP_PROJECT_ID/docker-sample:v1.1

Dockerイメージの確認

$ sudo docker images

4. コンテナの起動~仮想マシン1台構成の場合~

Dockerコンテナの起動

$ sudo docker run -it -p 80:80 --rm --name webserver gcr.io/$GCP_PROJECT_ID/docker-sample:v1.0

Dockerコンテナの動作確認

$ sudo docker run -it -p 80:80 --rm --name webserver gcr.io/$GCP_PROJECT_ID/docker-sample:v1.1

仮想マシンの削除

$ docker-machine stop webserver
$ docker-machine rm webserver

5. Docker実行環境の構築~クラスタ構成の場合~

クラスタ操作のための環境設定

$ cd ~/docker-handson/
$ gcloud container clusters get-credentials web-cluster --zone=asia-northeast1-a
$ kubectl get nodes

コンテナの起動

$ kubectl create -f deployment.yaml 
$ kubectl get pods

サービス設定ファイルの作成

$ cat service.yaml

サービスの起動

$ kubectl create -f service.yaml 
$ kubectl get services

6. コンテナのアップデート~クラスタ構成の場合~

デプロイ設定ファイルの修正

$ kubectl edit deployment/web-container

アップデートの確認

$ kubectl describe deployment/web-container

クラスタの削除

$ kubectl delete service web-service 
$ kubectl delete deployment web-container

おつかれさまでした