9
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Google Cloud Platform その1Advent Calendar 2018

Day 17

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

Last updated at Posted at 2018-12-16

モチベーション

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!

9
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?