Docker构建Apache镜像时卡在RUN apt相关指令步骤如何解决
Docker构建卡在apt更新安装步骤排查及解决方案
排查方向1:网络与DNS异常
- 先验证宿主网络可用性:在宿主机器执行
apt-get update,确认本身能正常拉取Ubuntu软件源内容 - 验证Docker容器内域名解析能力:执行
docker run --rm busybox nslookup archive.ubuntu.com,如果返回解析失败,说明Docker DNS配置错误- 修复方案:编辑
/etc/docker/daemon.json添加公共DNS配置:
保存后执行{ "dns": ["8.8.8.8", "114.114.114.114"] }systemctl restart docker重启Docker服务,再重新尝试构建。
- 修复方案:编辑
排查方向2:官方源访问速度过慢
- 国内环境访问Ubuntu默认官方源经常出现连接超时、下载速度极低的问题,可修改Dockerfile的RUN指令替换为国内镜像源:
RUN sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list \ && apt-get clean \ && apt-get update \ && apt-get install -y apache2 - 如有可用HTTP代理,也可在构建时临时注入代理参数:
docker build --build-arg http_proxy=http://代理地址:端口 -t myapache .
排查方向3:缓存与资源限制问题
- 清理无效构建缓存重试:执行
docker builder prune清理冗余构建缓存,再重新执行构建命令 - 检查宿主资源状态:执行
df -h确认Docker工作目录(默认/var/lib/docker)所在分区剩余空间充足,通过docker info确认Docker未设置过严的CPU、内存、IO限制导致安装过程资源不足卡住
排查方向4:定位具体卡住环节
- 执行
docker build --progress=plain -t myapache .开启详细构建日志输出,可直观看到apt具体卡在域名解析、连接源站还是包下载环节,针对性调整修复方案。
内容的提问来源于stack exchange,提问作者Golnoosh
相关产品推荐
相关产品推荐

