Docker网络配置问题
宿主机网络问题
DNS解析问题
容器配置问题
# 在宿主机测试外网连通性
ping 8.8.8.8
ping www.baidu.com
# 在容器内测试
docker exec -it 容器名 ping 8.8.8.8
docker exec -it 容器名 ping www.baidu.com
# 查看Docker网络列表
docker network ls
# 检查默认bridge网络配置
docker network inspect bridge
# 检查容器使用的网络
docker inspect 容器名 | grep NetworkMode
# 查看容器DNS配置
docker run --rm alpine cat /etc/resolv.conf
# 对比宿主机DNS配置
cat /etc/resolv.conf
# 启动容器时指定DNS
docker run --dns 8.8.8.8 --dns 8.8.4.4 ...
# 检查防火墙状态
systemctl status firewalld
ufw status # Ubuntu
# 检查iptables规则
iptables -L -n -v
iptables -t nat -L -n -v
# 临时关闭防火墙测试
systemctl stop firewalld
ufw disable
# 重启Docker服务
systemctl restart docker
# 重建默认网络
docker network rm bridge
docker network create bridge
# 检查容器网络命名空间
nsenter -t $(docker inspect -f '{{.State.Pid}}' 容器名) -n ip a
# 检查路由表
docker exec 容器名 route -n
# 检查MTU设置
docker exec 容器名 ifconfig
--network host
模式测试是否网络问题net.ipv4.ip_forward=1
)如果以上方法仍无法解决问题,可能需要检查更具体的网络环境配置或提供更多细节进行针对性分析。