温馨提示×

ubuntu docker如何联网

小樊
43
2026-09-01 10:01:22
栏目: 智能运维

在 Ubuntu 上使用 Docker 时,“联网”通常分为几种情况。下面按最常见问题 → 解决方式来说明。


一、Docker 容器无法访问外网(最常见)

1️⃣ 确认宿主机本身能上网

ping -c 4 8.8.8.8

如果宿主机都不能上网,先解决 Ubuntu 网络问题。


2️⃣ 检查 Docker 服务是否正常

systemctl status docker

3️⃣ 测试容器内是否能联网

docker run --rm busybox ping -c 4 8.8.8.8

❌ 如果失败,常见原因:

(1)DNS 问题(最常见)

编辑 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

(2)iptables 被修改

Docker 依赖 iptables,如果你手动改过防火墙:

sudo iptables -L -n

修复方式(谨慎):

sudo systemctl restart docker

或重装 iptables 规则(不推荐新手手动清)


二、Docker 使用宿主机代理上网(公司/校园网)

1️⃣ 设置 Docker 代理

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

⚠️ 注意:

  • Linux 需要 Docker 20.10+
  • 或运行容器时加:
--add-host=host.docker.internal:host-gateway

四、指定容器使用某种网络

默认桥接(自动联网)

docker run ubuntu

使用 host 网络(直接共享宿主机网络)

docker run --network host ubuntu

五、常见问题速查表

问题 原因
能 ping IP 不能 ping 域名 DNS
容器完全无网络 daemon.json / iptables
公司网连不上 代理
访问 localhost 失败 用 host 或 host.docker.internal

如果你能具体说一下:

  • ✅ 是 容器连不上外网
  • ✅ 还是 Docker 拉镜像慢/失败
  • ✅ 还是 容器访问宿主机服务

我可以直接给你一条最精确的命令。

0