Azure Container Registryの始め方
ソフトウェア開発において、どこに行っても、誰と話しても、コンテナが新しい標準のようです。もしあなたがそれを開発していないか、すでにアプリケーションを移行していないのであれば、旧式のアプリケーションをサポートするためにそれを使用する支援システムを構築していることになります。コンテナは至る所にあります。
しかし、これはエンジニアとして、あなたがどこかにコンテナを置く必要があることを意味します。昔は、これには何らかのアーティファクト(バイナリやアーカイブなど)を構築し、それをディスクやファイル共有に書き込んで配布することが含まれていました。コンテナエコシステムでは、それはコンテナレジストリとなり、あなたが構築するアーティファクトはコンテナイメージになります。
理想的には、コンテナレジストリは安全な場所で、コンテナスキャンやコミットごとのアクションのトリガー、またはスケジュールに基づく作業の一部を自動化できる機能があるべきです。幸運なことに、AzureにはAzure Container Registry(略してACR)があり、これらすべてのニーズに対応しています。
前提条件
一緒に進むために、次のものが必要です:
- Azureアカウント
- リポジトリからプッシュおよびプルするためのコンテナ
- Azureに認証されたPowerShellターミナル、またはCloudShellインスタンス(オプション)
容器はそれ以上のものである必要はありません。
hello-worldこれはコンテナ自体についてではなく、コンテナレジストリに関するチュートリアルだからです。Dockerやコンテナに不慣れな場合は、ここでさらに学ぶことができます。
レジストリの作成
最初に行う必要があるのは、Azureポータルを使用してレジストリを作成し、次にAzure PowerShellを使用することです。
ポータルを使用する
「リソースを作成」へ進み、次に「コンテナ」>「コンテナレジストリ」の下を見てください。
その後、レジストリを置くストレージアカウントとサブスクリプションに関する情報を入力するよう求められます。コンテナをデプロイするのと同じ地域にレジストリを配置することがベストプラクティスとされています。
一度プロビジョニングが完了したら、リソースページに移動し、「アクセスキー」タブを探してください。ここから「管理者ユーザー」オプションを有効にして、後でCLIを使用してログインできるようにしてください。
Azure PowerShellを使用して
Azure PowerShellを使用すると、これを1行で実行できます。CloudShellインスタンスまたはAzure PowerShellモジュールがインストールされたローカル認証済みPowerShellコンソールのいずれかで行います。
New-AzContainerRegistry -ResourceGroupName <Resource Group Name> -Name <Registry Name> -EnableAdminUser
その後、あなたはそれを使用できます
Get-AzContainerRegistryテナントに関連付けられているレジストリを一覧表示するためのコマンドレットです。イメージをレジストリにプッシュするにはまだ LoginServer プロパティが必要ですが、これはデモの残りの部分に示されている Azure PowerShell から取得できます。
あなたがそれを含めている限り
-EnableAdminUserフラグ、あなたはまた使用できるようになります
Get-AzContainerRegistryCredential次のステップのためのログイン資格情報を取得するコマンドレット。
ACRに画像をプッシュする
レジストリとそれに対するユーザーが設定されたので、今度はログインしてイメージをプッシュする時間です。ログインするには、次の方法を使用できます。
docker loginコマンド。スクリプトを使用している場合は、資格情報がプレーンテキストで表示されないように、次のように渡すか、Azure Key Vaultを使用してください。
Azure PowerShell
$RG_NAME = <Resource_Group_Name>
$ACR_NAME = <Registry_Name>
$registry = Get-AzContainerRegistry -ResourceGroupName $RG_NAME -Name $ACR_NAME
$creds = Get-AzContainerRegistryCredential -Registry $registry
$creds.Password | docker login $registry.LoginServer -u $creds.Username --password-stdin
手動で行っている場合は、docker login <RegistryURL>を実行し、"<RegistryURL>"を以前のアクセスキータブの「ログインサーバー」からの値に置き換え、次に管理者のユーザー名とパスワードを入力してください。
ログインしたので、リポジトリからコンテナイメージを好きなだけプッシュおよびプルできます。ローカルでコンテナをビルドまたはプルしたら、docker tag コマンドを使用してイメージにレジストリのURLとバージョンタグを追加し、次に docker push コマンドを使用してACRにプッシュします。次のような形になるはずです:
Docker CLI
docker tag <Image_Name> <Registry_URL>/<Image_Name>:<Version_Tag>
docker push <Registry_URL>/<Image_Name>:<Version_Tag>
ACRの画像を使用すると、認証されたデバイスからdocker pullを使用して画像をダウンロードして実行できます。
要約
今までに、Azure ポータルや Azure PowerShell を使用して ACR にレジストリを設定する方法、またそれからコンテナをプッシュおよびプルする方法に慣れているはずです。
ここから、Azure Security Centerを使用したコンテナ脆弱性スキャンの有効化や、ACRタスクを使用した自動化について確認できます。






