PrivateなDockerのRegistryとして、Azure Container Registryを利用する方法をまとめました。
今回はAzure Active Directoryを利用して認証する方法を紹介します。*1
- 環境
- Azure Container Registryを作成する
- Dockerイメージを作成する
- Azure Container Registryに接続する
- Azure Container Registryにイメージをプッシュする
- Azure Container Registryからイメージをプルする
環境
- Windows 10
- Azure CLI 2.0
Azure Container Registryを作成する
ここではポータルから作成する方法を説明します。
ポータルで「リソースの作成」をクリックし、検索ボックスに「Container」と入力します。するとドロップダウンに「Container Registry」が表示されれるので選択します。
あとは画面に従って作成してください。悩むほどのものではないと思います。
本エントリーでは「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」イメージがアップロードされていることが確認できるでしょう。
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を利用せず管理者ユーザーを有効化する方が手軽ですが、アカウント・パスワードを共有する形になるため今回は除外します。