Windows11下Docker Desktop用WSL2构建Ubuntu Dockerfile失败,Hyper-V正常
问题排查与解决办法
网络配置异常
Windows Docker Desktop的网络栈(WSL2/Hyper-V)容易出现DNS解析或连接不稳定的情况:
- 打开Docker Desktop设置 → Resources > Network,将DNS服务器改为公共DNS,比如
8.8.8.8或114.114.114.114 - 重启Docker Desktop后重新执行构建命令
源服务器访问缓慢/失效
你的基础镜像是Ubuntu Xenial(16.04),该版本已停止官方支持,默认源可能访问困难:
- 在Dockerfile中替换为国内镜像源,修改后的代码如下:
FROM osrf/ros:kinetic-desktop-full as base ENV NVIDIA_VISIBLE_DEVICES \ ${NVIDIA_VISIBLE_DEVICES:-all} ENV NVIDIA_DRIVER_CAPABILITIES \ ${NVIDIA_DRIVER_CAPABILITIES:+$NVIDIA_DRIVER_CAPABILITIES,}graphics # 替换为国内镜像源 RUN sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list && \ sed -i 's/security.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list && \ sed -i 's/snapshots.ros.org/ros-distribution.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list.d/ros-latest.list && \ apt-get update && apt-get install -y ca-certificates curl
代理干扰
如果Windows开启了代理,可能导致Docker容器内网络请求受阻:
- 暂时关闭系统代理,或在Docker Desktop设置 → Resources > Proxies中配置匹配的代理规则
- 检查WSL2环境变量,确保没有残留的
HTTP_PROXY/HTTPS_PROXY设置
缓存镜像损坏
本地缓存的基础镜像可能存在网络配置异常:
- 执行命令删除缓存镜像:
docker rmi osrf/ros:kinetic-desktop-full - 重新拉取镜像后再执行构建
内容的提问来源于stack exchange,提问作者fbence
相关产品推荐
相关产品推荐

