Quantcast
Channel: Google Cloud Platform その1 Advent Calendarの記事 - Qiita
Viewing all articles
Browse latest Browse all 23

GCR(Google Container Registry)を高速で安価なDockerのプライベートリポジトリとして利用する(?)

$
0
0

モチベーション

dockerイメージをgcrからpullするだけなら gcloud docker pull/push を利用するのが一番手軽で良いと思いますが、稀にgcloudコマンドをインストールせずにdockerコマンドのみある環境で GCR の認証を行いたい場合もあると思います。
そんな人のための記事になります。

追記 : GCRを高速なプライベートリポジトリとして利用できるので、嬉しい人は多いかもしれない。ということでタイトルも変更。

事前準備

  • gcloudコマンドインストールした端末を用意する
  • gcpのプロジェクトは作成しておく

そのぐらい、gcloudインストールしたくないとはいっても、認証のトークンを取得するためにどこかの端末にインストールし、 gcloud auth login は済ませて置く必要があります

認証のトークンを取得する

以下のコマンドを実行し、出力されるトークン(割と長めな文字列)をメモしておく。

gcloud auth print-access-token

GCRにdocker loginする

以下のようなコマンドで docker login する

docker login -u oauth2accesstoken -p {先程のトークン} https://asia.gcr.io

Login Succeeded と表示されればOK

試しに docker push/pull してみる

Dockerfileを配置し、コンテナをbuildする

Dockerfileは以下のように

FROM alpine
CMD echo "hello! ore-dayo!"

Dockerfileを配置したディレクトリで以下のコマンドでdocker buildを行う

docker build -t asia.gcr.io/{project id}/oreore .

コンテナをdockerコマンドでpushしてみる

以下のコマンドを実行

docker push asia.gcr.io/{project id}/oreore

問題なし。

GCPのコンソールからGCRないにpushしたイメージが見えているはず。

コンテナをdockerコマンドでpullしてみる(runする)

事前にbuildしたイメージは消しておく。

docker rmi {containerのid}

コンテナを実行する

docker run --rm asia.gcr.io/{project id}/oreore

コンテナイメージのpullが完了した後に、 hello! ore-dayo! と出れば成功。

これで gcloud をインストールしていない環境でも GCR からイメージをpush/pullできそう。

enjoy!


Viewing all articles
Browse latest Browse all 23

Trending Articles