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

新手求助:如何创建含PowerShell相关模块的Azure Docker镜像

嘿,作为Docker和Azure环境的新手,想要打造适配Azure环境的镜像,选对基础镜像+正确安装模块其实没那么复杂,我给你一步步捋清楚:

第一步:选对基础镜像

因为你需要PowerShell 5.1,直接选微软官方的Windows Server Core镜像就最合适——这些镜像天生兼容Azure环境,而且自带PowerShell 5.1,稳定性拉满。推荐选:

  • mcr.microsoft.com/windows/servercore:ltsc2019:Azure上支持最广泛的长期支持版本,适合大多数场景
  • mcr.microsoft.com/windows/servercore:ltsc2022:更新的版本,如果你需要更现代的系统组件可以选这个

别选Windows Nano Server,它的PowerShell是简化版,没法正常安装ExchangeOnlineManagement模块。

第二步:编写Dockerfile安装所需模块

直接用下面的Dockerfile,每一步我都给你标注了原因:

# 基于Azure兼容的Windows Server Core镜像(自带PS5.1)
FROM mcr.microsoft.com/windows/servercore:ltsc2019

# 设置工作目录,方便后续操作
WORKDIR /app

# 执行PowerShell命令完成模块安装
RUN powershell -Command \
    # 先把执行策略改成RemoteSigned,不然没法安装模块
    Set-ExecutionPolicy RemoteSigned -Force; \
    # 升级PowerShellGet——默认的PSGet版本太老,可能找不到最新的Exchange模块
    Install-Module -Name PowerShellGet -Force -AllowClobber; \
    # 刷新模块缓存,确保新的PSGet生效
    Import-Module PowerShellGet; \
    # 安装ExchangeOnlineManagement模块,Force和AllowClobber用来跳过冲突提示
    Install-Module -Name ExchangeOnlineManagement -Force -AllowClobber

# 容器启动后默认进入PowerShell界面
CMD ["powershell"]
第三步:构建&测试镜像
  1. 把上面的内容保存成Dockerfile(注意文件名没有后缀),放到一个空文件夹里,比如C:\docker\azure-exchange-ps
  2. 打开PowerShell,进入这个文件夹:cd C:\docker\azure-exchange-ps
  3. 执行构建命令:docker build -t azure-exchange-ps:v1 .(别漏了最后的点,代表当前目录)
  4. 构建完成后,测试容器:docker run -it azure-exchange-ps:v1
  5. 进入容器后,验证模块是否安装成功:Get-Module -ListAvailable ExchangeOnlineManagement,如果能看到模块的版本信息,就说明搞定了!
一些新手注意事项
  • Windows镜像体积普遍偏大(几个G),这是正常的,别慌——ServerCore本身就包含了Windows的核心组件
  • 构建时要确保Docker能访问外网,因为模块是在线下载的;如果在企业内网,可能需要配置Docker代理
  • 如果后续需要离线构建,可以先在本地机器上用Save-Module把模块下载下来,再通过COPY命令拷贝到镜像里,不过新手先从在线安装开始就好

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 21:12:31