在 Debian 的 Docker 容器里“联网”通常分几种情况,下面按最常见场景一步一步说明,你可以对照看是哪一种。
只要你正常安装 Docker,新建容器默认是能上网的:
docker run -it debian bash
进入容器后测试:
apt update
ping 8.8.8.8
✅ 如果能 ping 通、apt 能用,说明网络没问题。
systemctl status docker
如果没有运行:
systemctl start docker
如果你宿主机走代理,容器不会自动继承。
export http_proxy=http://代理IP:端口
export https_proxy=http://代理IP:端口
apt update
编辑或新建:
mkdir -p /etc/systemd/system/docker.service.d
vi /etc/systemd/system/docker.service.d/proxy.conf
内容:
[Service]
Environment="HTTP_PROXY=http://代理IP:端口"
Environment="HTTPS_PROXY=http://代理IP:端口"
Environment="NO_PROXY=localhost,127.0.0.1"
然后:
systemctl daemon-reload
systemctl restart docker
iptables -L -n
Docker 依赖 iptables,不要手动清空 Docker 规则。
如果你是 Debian + ufw:
ufw status
建议:
ufw allow 22
ufw enable
systemctl restart docker
docker run -it --network=host debian bash
✅ 直接用宿主机网络
❌ 不安全、端口冲突风险
如果 ping 8.8.8.8 通,但 apt update 报错:
echo "nameserver 8.8.8.8" > /etc/resolv.conf
或运行容器时指定:
docker run -it --dns=8.8.8.8 debian bash
| 现象 | 原因 |
|---|---|
| ping IP 通,域名不通 | DNS |
| apt 慢/失败 | 代理 / 源 |
| 容器无网络 | Docker 没启动 / iptables |
| 公司环境 | 必须配置代理 |
我可以给你精准命令,不绕弯。