在Ubuntu 20.04 Docker镜像安装PowerShell遇wget错误,求排查
在Ubuntu 20.04 Docker镜像中安装PowerShell时wget报错的排查方案
问题描述
我参照官方手册在Ubuntu 20.04 Docker镜像中安装PowerShell,执行以下命令时出现错误:
RUN wget -q "https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb"
错误信息:
Step 10/30 : RUN wget -q "https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb"
wget: error getting response: Invalid argument
容器系统信息:
root@:/opt# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.2 LTS Release: 20.04 Codename: focal
排查与解决方向
修复网络与DNS配置
Docker容器的bridge网络可能存在DNS解析异常,可在启动容器时指定公共DNS:docker run --dns 8.8.8.8 your-image也可以在Dockerfile中提前配置:
RUN echo "nameserver 8.8.8.8" > /etc/resolv.conf替换下载工具为curl
部分精简版Ubuntu镜像的wget可能存在SSL支持缺陷,改用curl完成下载:RUN curl -sSL -o packages-microsoft-prod.deb "https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb"确保SSL证书与wget完整性
先更新系统并安装必要的证书和最新版wget:RUN apt-get update && apt-get install -y --no-install-recommends wget ca-certificates && rm -rf /var/lib/apt/lists/*安装
ca-certificates可以解决因证书信任缺失导致的连接失败问题。直接使用官方PowerShell镜像
若无需自定义基础镜像,微软官方提供的PowerShell镜像已预装好环境,直接使用即可:FROM mcr.microsoft.com/powershell:7.2-ubuntu-20.04
内容的提问来源于stack exchange,提问作者Janis Karklins
相关产品推荐
相关产品推荐

