在 Ubuntu 上使用 Docker 时,“联网”通常分为几种情况。下面按最常见问题 → 解决方式来说明。
ping -c 4 8.8.8.8
如果宿主机都不能上网,先解决 Ubuntu 网络问题。
systemctl status docker
docker run --rm busybox ping -c 4 8.8.8.8
编辑 Docker 配置:
sudo nano /etc/docker/daemon.json
加入:
{
"dns": ["8.8.8.8", "114.114.114.114"]
}
重启 Docker:
sudo systemctl restart docker
再测试:
docker run --rm busybox ping -c 4 www.baidu.com
Docker 依赖 iptables,如果你手动改过防火墙:
sudo iptables -L -n
修复方式(谨慎):
sudo systemctl restart docker
或重装 iptables 规则(不推荐新手手动清)
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf
内容:
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:7890"
Environment="HTTPS_PROXY=http://127.0.0.1:7890"
重启:
sudo systemctl daemon-reload
sudo systemctl restart docker
host.docker.internal
⚠️ 注意:
--add-host=host.docker.internal:host-gateway
docker run ubuntu
docker run --network host ubuntu
| 问题 | 原因 |
|---|---|
| 能 ping IP 不能 ping 域名 | DNS |
| 容器完全无网络 | daemon.json / iptables |
| 公司网连不上 | 代理 |
| 访问 localhost 失败 | 用 host 或 host.docker.internal |
如果你能具体说一下:
我可以直接给你一条最精确的命令。