温馨提示×

centos docker怎么联网

小樊
44
2026-10-14 14:18:12
栏目: 智能运维

在 CentOS 上使用 Docker 联网,一般分几种常见场景,下面按“最常见 → 进阶”给你说明。


一、Docker 默认就能联网(最常见)

只要:

  • CentOS 能上网
  • 没有特殊防火墙限制

Docker 容器默认就能访问外网(通过 NAT)。

测试:

docker run --rm centos ping -c 3 www.baidu.com

如果能 ping 通,说明已经联网 ✅


二、CentOS 本身不能上网(先确认宿主机)

在 CentOS 上执行:

ping -c 3 www.baidu.com

如果宿主机都不通:

  • 检查网卡
ip addr
  • 检查 DNS
cat /etc/resolv.conf
  • 重启网络(CentOS 7)
systemctl restart network

三、容器无法联网的常见原因

1️⃣ 防火墙(firewalld)

CentOS 默认启用 firewalld,可能拦截 Docker NAT

解决:

systemctl stop firewalld
systemctl disable firewalld

或允许 Docker:

firewall-cmd --zone=public --add-masquerade --permanent
firewall-cmd --reload

2️⃣ SELinux

getenforce

如果是 Enforcing,可临时关闭测试:

setenforce 0

3️⃣ Docker 服务未正确启动

systemctl status docker

重启:

systemctl restart docker

四、指定容器使用宿主机网络(不推荐生产)

docker run --rm --network host centos ping www.baidu.com

五、自定义 Docker 网络(推荐)

docker network create mynet
docker run -it --network mynet centos bash

六、公司内网 / 代理环境

如果有 HTTP 代理:

docker run -e HTTP_PROXY=http://proxy:8080 \
           -e HTTPS_PROXY=http://proxy:8080 \
           centos ping www.baidu.com

七、快速排查清单 ✅

  • [ ] CentOS 能上网
  • [ ] firewalld / SELinux 未拦截
  • [ ] docker 服务正常
  • [ ] 容器默认桥接可用
  • [ ] DNS 正常(/etc/resolv.conf)

如果你能告诉我:

  • CentOS 版本(7 / 8 / Stream)
  • Docker 版本
  • 是 容器不能上网 还是 Docker 拉镜像失败

我可以给你更精确的命令。

0 踩