Azure ML Notebook内构建Docker镜像并部署Web应用方案咨询
在Azure ML Notebook环境内完成Docker镜像构建与Web Demo测试的方案
1. 能否在Azure ML Notebook中构建Docker镜像并推送至Azure Container Registry(ACR)?
完全可以,以下是两种适配Azure ML环境的实现方式:
方式一:直接使用Docker命令(需Compute Instance支持Docker)
- 确保你的Azure ML Compute Instance已启用Docker(默认大部分实例类型都已预装)
- 在Notebook工作目录下编写
Dockerfile,定义你的Python应用环境与启动逻辑 - 给镜像打上ACR的完整标签:
docker build -t <你的ACR名称>.azurecr.io/<镜像名>:<版本号> . - 通过Azure CLI登录ACR:
az acr login --name <你的ACR名称> - 推送镜像至ACR:
docker push <你的ACR名称>.azurecr.io/<镜像名>:<版本号>
方式二:使用Azure ML原生工具构建(更贴合Azure生态)
通过azureml.core库的Environment和BuildContext来构建镜像并推送至关联的ACR:
from azureml.core import Workspace, Environment from azureml.core.environment import BuildContext ws = Workspace.from_config() # 关联你的ACR(若未关联,可在Azure ML工作区设置中绑定) env = Environment(name="my-app-env") env.docker.base_image = None env.docker.base_dockerfile = "./Dockerfile" # 构建并推送镜像至ACR env.build(workspace=ws, build_context=BuildContext("./")) env.register(workspace=ws)
2. Azure Notebook无法托管Web门户的快速测试解决方案
无需离开Azure环境,可通过以下三种方案快速测试Streamlit/Gradio/FastAPI的布局与功能:
方案1:Compute Instance端口转发(最便捷的临时测试)
- 在Azure ML Compute Instance的Notebook中运行Web应用,指定端口(以Streamlit为例):
streamlit run app.py --server.port 8501 - 切换到Compute Instance的端口页面(在Notebook界面左侧导航栏),点击"添加端口",输入8501,系统会生成一个Azure内部可访问的临时链接,直接在浏览器中打开即可测试布局,链接仅在Compute Instance运行时有效,符合保密要求。
方案2:Azure ML在线推理端点部署
- 将已推送至ACR的镜像部署到Azure ML 托管在线端点,部署时配置启动命令(以Streamlit为例):
streamlit run app.py --server.port $PORT - 部署完成后,端点会生成一个可访问的URL,用于测试Web应用的完整功能与布局,测试完成后可暂停或删除端点以节省成本。
方案3:Azure App Service临时部署
- 从ACR将Docker镜像部署到Azure App Service,选择"容器"部署模式,配置启动命令与端口映射
- App Service会提供一个临时域名,用于快速测试Web应用,测试完成后可删除App Service资源,避免不必要的开支
内容的提问来源于stack exchange,提问作者stackword_0
相关产品推荐
相关产品推荐

