🎼

[Azure] コンテナイメージを作って ACR に上げるまで

2022/01/26に公開

AKS (Azure Kubernetes Service) や Azure Container Apps の検証等において、Azure 上のコンテナリポジトリ (Azure Container Repository) にテスト用のコンテナイメージを作りたいことが良くあるので、ちょっと手順をまとめておこうと思います。

環境

Docker のインストール

sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
sudo apt update
apt-cache policy docker-ce
sudo apt install docker-ce
sudo service docker start
sudo usermod -aG docker ${USER}

手順

ACR の作成

下記の手順に沿って、ACR を作成しておきます。

コンテナイメージの準備

めちゃくちゃ簡単ですが、下記のような Dockerfile を作成しておきます。

FROM debian:9

Azure へのログイン

az login コマンドで、Azure へのログインを済ませておきます。

コンテナイメージのビルド&プッシュ

Dockerfile の用意ができれば、az acr build コマンドでコンテナイメージのビルドとプッシュを実行することができます。

az acr build --image example/debian-9:v1 \
  --registry <myContainerRegistry> \
  --file Dockerfile .

コンテナイメージの実行

ローカル (Ubuntu) 上でのコンテナイメージの実行は az コマンドで行うことができます。

az acr run --registry <myContainerRegistry> \
  --cmd '$Registry/example/debian-9:v1' /dev/null

が、オプションの仕様などがわかりにくく、ちょっと使い辛いですね…

ACR 上のコンテナイメージの実行 (docker コマンド版)

ということで、いつもの docker コマンドで実行できるようにします。

まず、az acr login コマンドで ACR にログインします。これにより docker コマンドで ACR を見に行ってくれるようになります。

az acr login --name <myContainerRegistry>

そのうえで、ACR のサーバを指定して docker run コマンドを実行すれば OK です。

$ docker run -it <myContainerRegistry>.azurecr.io/example/debian:9 bash
root@3d9bbcbe269a:/#

参考資料

Discussion