nuits.jp blog

C#, Xamarin, WPFを中心に書いています。Microsoft MVP for Development Technologies。

Azure Container Registryを使う

PrivateなDockerのRegistryとして、Azure Container Registryを利用する方法をまとめました。

今回はAzure Active Directoryを利用して認証する方法を紹介します。*1

環境

Azure Container Registryを作成する

ここではポータルから作成する方法を説明します。

ポータルで「リソースの作成」をクリックし、検索ボックスに「Container」と入力します。するとドロップダウンに「Container Registry」が表示されれるので選択します。

f:id:nuitsjp:20180713185059p:plain

あとは画面に従って作成してください。悩むほどのものではないと思います。

本エントリーでは「hoge.azurecr.io」という名称で作成したものとして進めます。

Dockerイメージを作成する

「Hello, World!」を表示する簡単なDockerイメージを作成します。

「Dockerfile」という名称のファイルを作成し、つぎのように記述してください。

FROM alpine
CMD echo Hello, World!

Dockerfileを記述したら、ファイルを保存しているパスをコマンドプロンプトで開き、コンテナイメージを作成してください。

docker build -t hoge.azurecr.io/hello .

イメージの名称が「hoge.azurecr.io」点に注意してください。必ず先ほど作成したRegistryの名称を指定するようにします。

では念のためつぎのように実行してみましょう。

>docker run --rm hoge.azurecr.io/hello
Hello, World!

メッセージが表示されれば成功です。

Azure Container Registryに接続する

まずAzure CLIを使って、Azureへログインします。つぎのようにログインコマンドを実行してください。

az login

急にブラウザが開かれて驚くかもしれませんが、そこで先ほどAzure Container Registryを作成したAzureのアカウント・パスワードを入力して認証してください。

Azureへのログインが成功したら、つづいてAzure Container Registoryへログインします。

az acr login --name hoge

nameに入力するのは「hoge.azurecr.io」ではなく「hoge」だけですので注意してください。しばらく待って「Login Succeeded」と表示されれば成功です。

Azure Container Registryにイメージをプッシュする

つづいてイメージをプッシュしましょう。

docker push hoge.azurecr.io/hello

実行が完了したら、Azureのポータルから正しくアップロードされているか確認してみましょう。

「リポジトリ」を選択すると、確かに「hello」イメージがアップロードされていることが確認できるでしょう。

f:id:nuitsjp:20180713192327p:plain

Azure Container Registryからイメージをプルする

プルする前に、ローカルに作成したイメージが既に存在するので、一旦削除しましょう。

docker rmi hoge.azurecr.io/hello

つぎのコマンドを実行し、確かに削除されていることを確認します。

docker images

それではイメージをプルします。

docker pull hoge.azurecr.io/hello

最後に、実行して確認してみましょう。

>docker run --rm hoge.azurecr.io/hello
Hello, World!

これでAzure Container Registryを一通りは利用できるようになったかと思います。

以上です。

*1:AADを利用せず管理者ユーザーを有効化する方が手軽ですが、アカウント・パスワードを共有する形になるため今回は除外します。