bash
ping 8.8.8.8
curl -v https://www.google.com
bash
systemctl status docker
docker info
bash
systemctl start docker
bash
docker run --rm busybox nslookup google.com
bash
docker run --dns 8.8.8.8 ...
/etc/docker/daemon.json
):
json
{
"dns": ["8.8.8.8", "8.8.4.4"]
}
然后重启Docker服务bash
iptables -L -n
ufw status
bash
systemctl stop firewalld
ufw disable
bash
docker network ls
docker inspect 容器ID | grep NetworkMode
bash
docker run --network bridge ...
bash
docker network create my_network
docker run --network my_network ...
bash
docker run -e http_proxy=http://proxy.example.com:8080 ...
检查基础连接:
docker run --rm busybox ping 8.8.8.8
检查DNS解析:
docker run --rm busybox nslookup google.com
检查HTTP访问:
docker run --rm appropriate/curl curl -v https://www.google.com
检查容器网络配置:
docker inspect 容器ID | grep -i network
检查路由表:
docker exec 容器ID ip route show
检查网络接口:
docker exec 容器ID ip addr show
使用--network host
模式测试:
docker run --rm --network host appropriate/curl curl -v https://www.google.com
如果这样能工作,说明问题出在Docker网络配置而非系统配置
检查Docker日志:
journalctl -u docker.service -n 50
重置Docker网络:
systemctl restart docker
docker network prune
通过以上步骤,应该能够定位并解决大多数Docker容器无法上网的问题。