You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将Docker应用从Azure VM迁移至Azure Web App:无Docker CLI镜像推送方案

问题解答

一、先理清你提到的两个Azure服务差异

  • Azure Web App for Containers:专门针对Web应用的容器托管服务,支持单容器或多容器(通过docker-compose)部署,自带自定义域名、SSL证书、部署槽、自动缩放等Web服务常用特性,操作逻辑贴近传统Web App,门槛较低,适合你的Web应用场景。
  • Azure Container Apps:偏向无服务器容器编排,更适配微服务架构,支持Dapr集成、事件驱动自动缩放等进阶能力,如果你是分布式多容器应用,需要更灵活的编排规则,选这个更合适。

二、不用Docker CLI推送镜像到仓库的办法

1. 用Azure CLI导入到Azure容器注册表(ACR)

如果目标仓库是ACR,Azure CLI比Docker CLI更轻量易安装:

  • 先在Windows上安装Azure CLI,完成后登录Azure账号:az login
  • 执行导入命令,将本地tar包直接传到ACR:
    az acr import --name <你的ACR名称> --source <本地tar文件绝对路径> --image <镜像名:标签>
    
    示例:az acr import --name myacr --source C:\myimages\web-app.tar --image web-app:v1

2. 直接在Azure门户上传到ACR

完全不用命令行的可视化操作:

  • 登录Azure门户,找到你的ACR实例
  • 左侧菜单点击「存储库」,再点击「上传」
  • 选择本地的tar镜像文件,填写镜像名称和标签,点击「上传」即可完成

三、其他迁移方案推荐

1. 直接在原Azure虚拟机上推镜像

原虚拟机本来就有Docker环境(否则之前无法运行容器),直接在上面操作更省事:

  • 在Linux虚拟机上安装Azure CLI:curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
  • 登录ACR:az acr login --name <你的ACR名称>
  • 给本地镜像打ACR标签:docker tag <原镜像名> <ACR域名>/<镜像名:标签>
  • 推送镜像到ACR:docker push <ACR域名>/<镜像名:标签>
  • 之后在Azure Web App/Container Apps中直接引用ACR的镜像即可部署

2. 用Azure存储+容器实例临时处理

不想操作原虚拟机的话,可以用临时容器实例中转:

  • 把本地的tar包上传到Azure存储账户的Blob容器
  • 创建Azure容器实例(ACI),挂载该Blob容器
  • 在ACI中安装Docker,加载tar镜像后推送到ACR,完成后删除ACI即可

3. 多容器直接用docker-compose部署到Web App

如果你的4个容器是用docker-compose管理的:

  • 导出原虚拟机上的docker-compose.yml文件
  • 将所有镜像推送到ACR后,在Azure Web App for Containers中选择「多容器」部署模式,上传该yml文件
  • 配置Web App连接到你的ACR,即可一键部署整个应用

内容的提问来源于stack exchange,提问作者Etienne

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 01:17:27