华为云 ECS 上 Docker 部署项目踩坑实录,解决镜像拉取超时、DNS 解析失败问题
【摘要】 最近在用华为云 ECS 做自动化服务部署,全程踩了不少 Docker 相关的坑,把实战经验整理出来给大家参考。一、场景说明我们在 ECS 服务器使用 Docker 部署各类面板、自动化服务时,最常遇到两类报错:拉取镜像连接重置、域名 DNS 解析失败。尤其是访问 Docker Hub 官方源的时候,很容易超时、重试多次后失败,还有脚本调用外部接口出现NameResolutionError域名...
最近在用华为云 ECS 做自动化服务部署,全程踩了不少 Docker 相关的坑,把实战经验整理出来给大家参考。
一、场景说明
我们在 ECS 服务器使用 Docker 部署各类面板、自动化服务时,最常遇到两类报错:拉取镜像连接重置、域名 DNS 解析失败。尤其是访问 Docker Hub 官方源的时候,很容易超时、重试多次后失败,还有脚本调用外部接口出现NameResolutionError域名解析不到的问题。
二、问题 1:Docker 拉取镜像失败
报错类似:
error pulling image configuration: read tcp ... read: connection reset by peer
Retrying in 10 seconds
原因:服务器直连 Docker Hub 网络不稳定,丢包、连接被重置。
✅ 解决方案:
- 配置国内 Docker 镜像加速源(阿里云 / 华为云镜像加速器),不要裸连官方 hub。
- 宝塔 Docker 插件里,优先填写国内加速地址,不优先使用外部代理。
- 清理旧容器后,重新执行
docker run或者docker-compose up -d启动。
小提醒:代理方案风险较高,优先镜像加速,稳定性更好。
三、问题 2:脚本 HTTPS 请求域名解析失败
报错关键字:Failed to resolve shturl.,也就是 DNS 解析异常。 出现这个报错,代表服务器或者容器内部 DNS 服务器无法解析目标域名。
✅ 排查步骤:
- 宿主机测试:
nslookup 域名,看能不能正常解析。 - 如果宿主机正常、容器内不行:启动容器时指定 DNS,
--dns 223.5.5.5。 - 直接修改 ECS 系统
/etc/resolv.conf更换公共 DNS(阿里 DNS、腾讯 DNS)。
四、配套操作命令汇总
# 查看全部容器状态
docker ps -a
# 查看容器实时日志
docker logs -f 容器名
# 删除旧容器
docker rm -f 容器名
# 重启docker服务
systemctl restart docker
五、总结
在华为云 ECS 玩 Docker 部署,网络问题是高频卡点。优先配置国内镜像加速器、做好 DNS 适配,绝大多数连接超时、解析失败问题都能解决。部署前先测试网络连通性,可以省下大量排错时间。
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)