😀
Docker Desktop の代わりに docker コマンドを使用して Azure Container Instan
背景と目的
Docker Desktop の企業利用が有料になったのを機に、私は会社 PC からアンインストールしてしまいました。それでもたまに docker コマンドを使って検証したい時が発生します。WSL のインストールも禁止されている PC なので、Azure 上の検証用 AVD につないで docker コマンドを使った検証をしていたります。今回は Docker Desktop の代わりに docker コマンドを使用して Azure Container Instances を操作してみました。
前提条件
bash
$ sw_vers
ProductName: macOS
ProductVersion: 12.5
BuildVersion: 21G72
$ az version
{
"azure-cli": "2.39.0",
"azure-cli-core": "2.39.0",
"azure-cli-telemetry": "1.0.6",
"extensions": {}
}
$ docker --version
Docker version 20.10.17, build 100c701
# Docker Desktop は停止した状態で動作を確認しました
$ docker ps
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
検証内容
bash
# 環境変数をセットします
region=japaneast
prefix=mnrdaci
# リソースグループを作成します
az group create --name ${prefix}-rg --location $region
# Azure にログインします(ブラウザが開きます)
docker login azure
# ACI に関連付けられた Docker コンテキストを作成します
docker context create aci ${prefix} --resource-group ${prefix}-rg
# Docker コンテキスト一覧を表示します
docker context ls
# 作成したコンテキストで Nginx コンテナを実行します
docker --context ${prefix} run --name ${prefix} -d -p 80:80 nginx
# リソースグループ内に ACI リソースが作成されたのを確認します
az resource list --resource-group ${prefix}-rg --output table
# ACI のパブリック IP アドレスを取得します
pip=$(az container show --name ${prefix} --resource-group ${prefix}-rg --query ipAddress.ip --output tsv)
# ACI にアクセス出来るか試します
curl $pip
# アクセスログを確認します
docker --context ${prefix} logs ${prefix}
# コンテナを停止します
docker --context ${prefix} stop ${prefix}
# コンテナを削除します
docker --context ${prefix} rm ${prefix}
# リソースグループ内に ACI リソースが無くなったのを確認します
az resource list --resource-group ${prefix}-rg --output table
# Docker コンテキストを削除します
docker context rm ${prefix}
# Docker コンテキスト一覧を表示します
ddocker context ls
# リソースグループを削除します
az group delete --name ${prefix}-rg --yes
参考
Discussion