如何将本地Docker容器发布并运行在Azure?求简易操作清单
把本地Docker容器迁移到Azure的简易操作清单
其实这个操作确实挺 straightforward 的,你之前看的Docker for Azure文档更多是关于在Azure上运行Docker集群的,而迁移单个容器的话,核心流程是镜像上传到Azure的镜像仓库 → 用Azure服务部署这个镜像,下面给你列个极简版的操作步骤:
步骤1:准备Azure容器注册表(ACR)
这是你在Azure上存Docker镜像的私有仓库,相当于专属版的Docker Hub:
- 可以用Azure CLI快速创建一个基础版ACR实例:
az acr create --resource-group your-resource-group --name your-acr-name --sku Basic - 创建完成后,登录到你的ACR:
az acr login --name your-acr-name
步骤2:给本地镜像打标签并推送到ACR
- 先查看本地Docker镜像列表,找到你要迁移的镜像名称和标签:
docker images - 给镜像打上符合ACR要求的标签,格式为
你的ACR名称.azurecr.io/镜像名称:版本号:docker tag local-image:tag your-acr-name.azurecr.io/local-image:tag - 把打好标签的镜像推送到ACR:
docker push your-acr-name.azurecr.io/local-image:tag
步骤3:部署到Azure容器实例(ACI)—— 最轻量化的单容器方案
如果你的容器只是简单服务,不需要集群或扩展能力,ACI是最快的部署方式:
- 用Azure CLI一键部署,顺便设置可访问的DNS标签:
az container create --resource-group your-resource-group --name your-container-name --image your-acr-name.azurecr.io/local-image:tag --dns-name-label your-unique-dns --ports 80 - 部署完成后,查看容器的访问地址:
拿到地址后直接在浏览器访问就行az container show --resource-group your-resource-group --name your-container-name --query ipAddress.fqdn --output tsv
备选:部署到Azure App Service(Web App for Containers)
如果你的容器是Web应用,这个方案更合适,自带SSL、负载均衡、自动缩放等Web应用专属能力:
- 先创建Linux版的App Service计划,再创建Web App并关联你的ACR镜像:
az appservice plan create --name your-plan-name --resource-group your-resource-group --sku B1 --is-linux az webapp create --resource-group your-resource-group --plan your-plan-name --name your-webapp-name --deployment-container-image-name your-acr-name.azurecr.io/local-image:tag - 配置Web App访问私有ACR的权限:
完成后就能通过az webapp config container set --name your-webapp-name --resource-group your-resource-group --docker-registry-server-url https://your-acr-name.azurecr.io --docker-registry-server-user your-acr-name --docker-registry-server-password $(az acr credential show --name your-acr-name --query passwords[0].value --output tsv)https://your-webapp-name.azurewebsites.net访问你的应用了
补充说明
你之前看的Docker for Azure文档,核心是面向在Azure上部署Docker Swarm集群的场景,适合需要管理多容器集群的用户,而单个容器迁移属于更轻量化的场景,所以ACR+ACI/App Service的路径才是最直接的。
内容的提问来源于stack exchange,提问作者Urs Meili
相关产品推荐
相关产品推荐

