避坑指南:STM32WLE5CCU6移植LoRaWAN_AT_Slave工程时,那些CubeMX和BSP包的常见问题
2026/5/28 4:03:02
这是 Docker 使用过程中出现频率极高、但又非常容易让人困惑的问题之一:
容器能正常启动,服务也没报错,但在容器里
ping、curl外网全部失败。
本文将从Docker 网络原理 + 实战排查顺序两个层面,系统讲清楚这个问题。
你可能在容器里执行过以下操作:
dockerexec-it my-container /bin/bash然后尝试访问外部网络:
pingwww.baidu.comcurlhttps://www.google.com结果却是:
ping: unknown hostTemporary failure in name resolutionNetwork is unreachable而在宿主机上:
pingwww.baidu.com却完全正常。
Docker 容器的网络,并不是“自动等同于宿主机网络”。
默认情况下:
docker0网桥访问外部网络一旦中间任何一个环节出问题,容器就会“与世隔绝”。
Temporary failure in name resolution但:
ping8.8.8.8却是通的。
Docker 默认会从宿主机读取 DNS,但在某些环境下并不可靠。
docker run --dns8.8.8.8 my-app编辑 Docker 配置文件:
/etc/docker/daemon.json{"dns":["8.8.8.8","114.114.114.114"]}重启 Docker:
systemctl restart docker在企业网络中,常见情况包括:
此时:
docker run\-eHTTP_PROXY=http://proxy.company.com:8080\-eHTTPS_PROXY=http://proxy.company.com:8080\my-app或者在 Dockerfile 中:
ENV HTTP_PROXY=http://proxy.company.com:8080 ENV HTTPS_PROXY=http://proxy.company.com:8080Docker 强依赖 iptables 进行 NAT 转发。
如果你遇到:
很可能是防火墙规则被破坏。
iptables -t nat -L -n检查是否存在 Docker 相关规则。
systemctl stop firewallddocker run --networkhostmy-app在 Linux 下:
但在Docker Desktop(Windows / Mac):
host模式并不等价--network host在使用:
docker network create my-net后,如果子网与公司内网冲突:
docker network inspect my-net检查子网是否冲突。
1. 宿主机能否访问外网? 2. 容器能 ping IP 吗? 3. DNS 是否解析失败? 4. 是否处于代理 / 内网环境? 5. iptables / 防火墙是否异常? 6. Docker 网络模式是否合理?严格按顺序排查,不要跳步。
# 查看容器 DNScat/etc/resolv.conf# 测试 IP 连通性ping8.8.8.8# 测试 DNSnslookupwww.baidu.com# 查看网络ipaddr因为它同时涉及:
任何一个环节异常,都会让问题看起来“很玄学”。
“容器访问不了外网”并不意味着 Docker 坏了,
而是你开始真正触碰 Docker 网络的边界。
只要你建立起:
这套认知模型,这类问题将不再是难题。
如果本文对你有帮助,欢迎点赞、收藏与关注,后续将持续更新 Docker 高频问题实战系列。