クラウドインフラ構築記

現在AWSの構築支援に携わっております。今注視しているのは、GKE、BigQuery、Google Dataflowなどサービスを展開しているGoolge Cloud Platformです。

Amazon Linuxのdocker イメージをGoogle Container Registryからpull・run #gcpja

Amazon Linuxのdocker imageを作成し、Google Container Registryにアップロードを行い、

Amazon Linuxのdocker イメージを作成する方法については、http://dev.classmethod.jp/cloud/aws/docker-serverspec-configspec-ci/ を参照にしました。

AmazonLinux dockerイメージをローカルのdocker環境にインポートします。

# docker import < amazonssh.tar
# docker tag amazonssh asia.gcr.io/#your-project-id#/amazonssh

Google Container Registryにアップロードを行います。

# gcloud docker push asia.gcr.io/#your-project-id#/amazonssh
The push refers to a repository [asia.gcr.io/#your-project-id#/amazonssh] (len: 1)
Sending image list
Pushing repository asia.gcr.io/#your-project-id#/amazonssh (1 tags)

適当なVMインスタンスを起動します。GCSへのリード書き込み権限を付与することを忘れずに。

# gcloud compute instances create instance-test-docker --image centos-7  --scopes https://www.googleapis.com/auth/devstorage.read_write

dockerのインストール、起動

# yum install docker
# service docker start

asia リージョンのバケットにアップしたので、gcr.ioで見つからないとエラーとなります。

# docker pull gcr.io/your-project-id/amazonssh
Trying to pull repository gcr.io/your-project-id/amazonssh ... not found
FATA[0000] Error: image your-project-id/amazonssh:latest not found

Google Container Registryからdocker イメージを取得します。

# docker pull asia.gcr.io/your-project-id/amazonssh
Trying to pull repository asia.gcr.io/your-project-id/amazonssh ...
3fe81e712d9e: Download complete
a09fe07f3274: Download complete
81bcdeaea41c: Download complete
7ad48843769c: Download complete
9b15589bc305: Download complete
48fc49b0c3fa: Download complete
25a9a1b3f0d0: Download complete
cbfa77630235: Download complete
76ab5065c4b2: Download complete
Status: Downloaded newer image for asia.gcr.io/your-project-idamazonssh:lat

docker イメージがpullできていることを確認できます。

# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
asia.gcr.io/your-project-id/amazonssh latest 3fe81e712d9e 2 weeks ago 874.1 MB

docker containerを起動

# docker run -h amazonssh -t 3fe81e712d9e /bin/bash
Usage of loopback devices is strongly discouraged for production use. Either use `--storage-opt dm.thinpooldev` or use `--storage-opt dm.no_warn_on_loop_devices=true` to suppress this warning.
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5534906edb50 3fe81e712d9e:latest "/bin/bash" 17 seconds ago Up 16 seconds 22/tcp agitated_fermi

GCEでAmazon Linuxの環境を構築することも可能となります。

Container-Optimized Compute Engine Instancesでインスタンス起動時にContainer Registryから取得して、Containerを起動することも可能ですが、こちらについては、別途機会に。

コメントは受け付けていません。