どうも、エピックです。
このノートでは Azure Container Registory を試したのでその内容についてメモします。
ポータルから ACR を作成する
Azure CLI (Command Line Interface) を利用しても作成できますが、今回は普通にポータルから作成していきます。
試す場合はお金がかかるので、この点には十分注意してください。
検索欄に「コンテナ」と入力するとサービスがヒットしますが、その中の「コンテナーレジストリ」を選択します。
何もないので新規で作成します。
基本設定をしていきます。
- サブスクリプション:Pay-As-You-Co
- リソースグループ:(新規)acr_group ※既存でもOK
- レジストリ名:acrtestory.azurecr.io ※被ったらNG
- 場所:Japan East
- 可用性ゾーン:無効
- SKU:Basic ※いつでも変更可能
続いてネットーワークですが、こちら SKU が Premium でないと何もできませんのでスルー。
プラベートアクセスにしたい場合は、Premium が必須となります。
Premium を選択することで、プライベートエンドポイントの設定が可能になります。
Microsoft公式「Azure Container Registry サービス階層」
引き続き暗号化ですが、こちらもPremium でないと何もできませんのでスルー。
法人利用はセキュリティの観点から Premium 一択になりそうですね。
あとは淡々とぽちぽちしていき、作成をすれば ACR のデプロイ完了です。
クイックスタートを流してみる
ポータルから先ほど作成した ACR を確認することができます。
動作を確認したいので、試しにそこに用意されているクイックスタートを流していきます。
ローカルでコマンドプロンプトを開き、基本となる hello-world のイメージを runします。
docker run -it hello-world
次のコマンドでコンテナが動いているのが確認できると思います。
docker ps -a
ここからはAzureに(Dockerレジストリに)コマンドから接続を行っていきます。
まず、アクセスキーを確認します。
Premium SKU であればアクセスを得る別の手段があるのですが、Basic ではないので管理者ユーザーはONにしてください。
“ログインサーバー” “ユーザー名” “password” を使って接続を行います。
次のコマンドを入力します。
docker login <ログインサーバー>
ユーザー名とパスワードが求められるはずなのでコピーして入力します。
Login Succeeded と表示されれば接続が確立できました。
docker tag <イメージ名> <ログインサーバー>/<ログインサーバーにおけるイメージ名>:<タグ>
# <例> docker tag hello-world acrtestory.azurecr.io/hello-world:v1
docker imagesと入力するとローカルのイメージに合わせ 先ほどタグづけしたイメージも表示されるはずです。
docker images
タグ付けをしたらあとは ACR へプッシュします。
docker push acrtestory.azurecr.io/hello-world:v1
Push に成功していれば、ポータル画面のレポジトリから確認ができます。
さらに展開するとタグごとにイメージが格納されているのがわかります。
続いてここからイメージをプルしてみます。
混乱しないようにまずは先ほどのローカルコンテナを削除します。
# ローカルのコンテナIDを確認
docker ps -a
# コンテナIDをもとに削除
docker rm <コンテナID>
イメージも削除します。
# ローカルのイメージIDを確認
docker images -a
# コンテナIDをもとに削除
docker rmi <イメージID> -f
何もなくなったことを確認し pull でローカルに持ってきます。
docker pull acrtestory.azurecr.io/hello-world:v1
ローカル上で先ほどのイメージが表示されれば完了です。
docker images -a
最後に
今回はAzure Container Registory を試したのでそれについて書いてみました。
もしわからないこと等あればコメントにていただけれればと思います。
今回も最後までお読みいただきありがとうございました。
では。