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

Azure上Packer构建Ubuntu镜像报错:无法连接azure.archive.ubuntu.com

Azure Packer构建Ubuntu镜像时apt-get随机连接超时的解决思路
  • 切换区域化Ubuntu源地址
    Azure的Ubuntu官方源提供区域节点,跨区域访问容易出现随机超时。将/etc/apt/sources.list中的azure.archive.ubuntu.com替换为VM所在区域的专属源地址(比如eastus.azure.archive.ubuntu.com对应美国东部区域),减少跨区域网络延迟。执行命令:

    sudo sed -i 's/azure.archive.ubuntu.com/eastus.azure.archive.ubuntu.com/g' /etc/apt/sources.list
    

    替换时需将eastus改为Packer构建VM实际所在的Azure区域。

  • 给apt-get添加重试机制
    在安装命令中增加重试参数,或用循环包装安装逻辑,应对随机网络波动:

    • 单命令重试:
      sudo apt-get install -y --fix-missing -o Acquire::Retries=3 docker-ce docker-ce-cli containerd.io
      
    • 循环重试脚本:
      MAX_RETRIES=3
      RETRY_COUNT=0
      until sudo apt-get install -y docker-ce docker-ce-cli containerd.io; do
          RETRY_COUNT=$((RETRY_COUNT+1))
          [ $RETRY_COUNT -ge $MAX_RETRIES ] && { echo "安装失败,重试次数耗尽"; exit 1; }
          echo "安装失败,重试第 $RETRY_COUNT 次..."
          sleep 5
      done
      
  • 排查Azure网络限制

    • 检查Packer使用的VM所在子网的NSG规则,确认未限制出站80/443端口访问Ubuntu源地址;
    • 查看Azure防火墙是否存在阻止azure.archive.ubuntu.com的规则;
    • 临时提升VM实例大小(比如从B1s改为B2s),排除带宽不足导致的超时问题。
  • 清理并更新apt缓存
    先清理旧缓存,再带重试参数更新缓存,确保下载的包信息是最新的:

    sudo apt-get clean
    sudo apt-get update -o Acquire::Retries=3
    sudo apt-get install -y --fix-missing docker-ce docker-ce-cli containerd.io
    
  • 改用内网apt源
    如果频繁构建镜像,可将常用deb包上传至Azure Blob存储并配置为内网apt源,避免公网网络波动影响,提升下载稳定性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 23:30:03