根据以下链接,我应该看到我的ACI容器的公共DNS名称: https://feedback.azure.com/forums/602224-azure-container-instances/suggestions/32983720-automatically-assign-dns-name-to-instance
但是,未创建任何DNS名称。以下是我创建容器的方式:
az container create -g ex-rg --name ex-container --image docker.io/repo/example:latest -e somevar=value --ip-address public --location westus
az container show --resource-group ex-rg --name ex-container |grep ip
"ipAddress": {
"ip": "40.112.219.202",
az container show --resource-group ex-rg --name ex-container |grep dns
"dnsNameLabel": null,```
az --version
azure-cli (2.0.27)
我也尝试过使用terraform(使用API),结果相同。
如果我们无法使用DNS名称,则ACI对我们没有用处。答案 0 :(得分:2)
您需要从CLI指定dns-name-label参数才能接收。这个document可以提供帮助,下面会显示一个示例 - 请记住,您的DNS名称必须是唯一的。
az container create -g MyResourceGroup --name myalpine --image alpine:latest --ports 80 443 --dns-name-label contoso
答案 1 :(得分:1)
答案 2 :(得分:0)
您可以使用ARM模板使用此功能,但仍然无法附加自定义域+ ssl证书。有点无用:/,希望尽快更新,因为没有正确的解决方法
答案 3 :(得分:0)
一旦在ARM模板中设置了dnsNameLabel,就可以通过以下方式进行查找
az container show --resource-group ex-rg --name ex-container | grep -pattern fqdn
抓取 dns 不会显示正确的结果。
答案 4 :(得分:0)
仅对于将 docker compose 与 ACI 结合使用的人,您可以向 docker compose 文件中的任何服务添加域名属性。每次推送映像并启动实例时,Azure 都会使用该 domainname.location.azurecontainer.io 作为容器组的 FQDN。然后,您可以使用该域名及其各自的端口访问每个容器。