2019年1月28日月曜日

Azure Container Registry を使う

前回に引き続き、 Azure Container Registry を使ってみる。

クイックスタートをなぞりつつ、そこに書かれていない情報確認コマンドや削除コマンドを試した感じ。

前提

  • Azure のアカウント取得は済み
  • Azure CLI 導入済み(microsoft/azure-cli を使用)

Azule CLI 用のコンテナ起動

Azure Container Registry に push したりするためには、 docker コマンドが必要なので、 docker 実行可能な設定でコンテナを起動し、 docker をインストールする。

Azure CLI 用のコンテナ起動

docker run -it --rm -v "/var/run/docker.sock:/var/run/docker.sock" microsoft/azure-cli

docke インストール

apk update
apk add docker

Azure へのログイン

az login

https://microsoft.com/devicelogin に接続し、 az login が出力した code をテキストフィールドに入力する。

リソースグループの作成

az group create --name FirstContainerRegistry --location japaneast

コンテナレジストリ作成

az acr create --resource-group FirstContainerRegistry --name Mikoto2000sFirstContainerRegistry --sku Basic

作成したコンテナレジストリへログイン

az acr login --name Mikoto2000sFirstContainerRegistry

コンテナレジストリの FQDN を取得

イメージを push するためには コンテナレジストリの FQDN が必要なのでそれをメモする。

az acr list --resource-group FirstContainerRegistry --query "[].{acrLoginServer:loginServer}" --output table

AcrLoginServer の値をメモ。

今回は mikoto2000sfirstcontainerregistry.azurecr.io であることが確認できた。

Azure Container Registry にプッシュするためのイメージを用意

docker pull microsoft/aci-helloworld

Azure Container Registry にプッシュ

Azure Container Registry にプッシュするためにタグ名を付けなおして push。

docker tag microsoft/aci-helloworld mikoto2000sfirstcontainerregistry.azurecr.io/aci-helloworld
docker push mikoto2000sfirstcontainerregistry.azurecr.io/aci-helloworld

プッシュ結果の確認

az acr repository list --name Mikoto2000sFirstContainerRegistry --output table

Resultaci-helloworld があるのが確認できる。

イメージのタグ確認

az acr repository show-tags --name Mikoto2000sFirstContainerRegistry --repository aci-helloworld --output table

Resultlatest があるのが確認できる。

push したイメージを使ってコンテナインスタンスを立ち上げる

本来であれば「サービスプリンシパル」というものを作ってアクセス制御をするものらしいが、 チュートリアルではルートユーザー的なものでログインして作ってしまうようだ。

ルートユーザー的なものの情報取得

まず、レジストリ管理者になる。

az acr update --name Mikoto2000sFirstContainerRegistry --admin-enabled true

レジストリ管理者のパスワードの確認。

az acr credential show --name Mikoto2000sFirstContainerRegistry --query "passwords[0].value"

パスワードが表示されるのでメモ。

コンテナデプロイ

コンテナインスタンスをデプロイする。

ユーザー名は Azure Container Registry 名、パスワードは先ほど取得した文字列とする。

az container create --resource-group FirstContainerRegistry --registry-username Mikoto2000sFirstContainerRegistry --registry-password <直前で表示されたパスワード> --name acr-instance --image mikoto2000sfirstcontainerregistry.azurecr.io/aci-helloworld --cpu 1 --memory 1 --dns-name-label aci-instance --ports 80

コンテナインスタンス情報を取得

az container show --resource-group FirstContainerRegistry --name acr-instance --query ipAddress.fqdn

FQDN が表示される。

コンテナインスタンスの動作確認

Web ブラウザで、先ほど表示された FQDN に接続する。

Welcome to Azure Container Instances! と表示されていれば OK.

コンテナインスタンス確認

az container list --resource-group FirstContainerRegistry --out table

今作ったコンテナインスタンスの情報が表示される。

コンテナインスタンスの削除

az container delete --resource-group FirstContainerRegistry --name acr-instance

ふたたび az container list ... をすると、コンテナインスタンスが消えているのが確認できる。

Azure Container Registry の確認

az acr list --resource-group FirstContainerRegistry --out table

作った Container Registry が表示される。

Container Registry の削除

az acr delete  --resource-group FirstContainerRegistry --name Mikoto2000sFirstContainerRegistry

ふたたび az acr list ... をすると、コンテナレジストリが消えているのが確認できる。

リソースグループの確認

az group list --out table

作成したリソースグループが確認できる。

リソースグループの削除

az group delete --name FirstContainerRegistry

ふたたび az group list ... すると、リソースグループが消えていることがわかる。

本格的に使うには、レジストリのアクセス制御について勉強する必要がありますね。

以上。

0 件のコメント:

コメントを投稿