温馨提示×

centos docker怎样联网

小樊
39
2026-09-08 20:01:47
栏目: 智能运维

CentOS 上使用 Docker 联网,一般分几种情况,下面按常见场景说明。


一、Docker 容器默认就可以联网(最常见)

只要 Docker 正常安装,容器默认通过 bridge 网络访问外网

docker run -it centos bash

容器内执行:

ping 8.8.8.8
curl www.baidu.com

✅ 如果能通,说明 Docker 网络正常。

Docker 默认使用 bridge + NAT(iptables)


二、CentOS 宿主机本身不能联网

如果 宿主机都不能上网,容器肯定也不行。

检查:

ping 8.8.8.8

常见原因

  • 没配置 DNS
  • 网卡没启动
  • 防火墙/网络策略限制

解决示例(CentOS 7/8)

vi /etc/resolv.conf

添加:

nameserver 8.8.8.8
nameserver 114.114.114.114

重启网络:

systemctl restart network

三、Docker 容器不能联网(宿主机可以)

1️⃣ 检查 Docker 服务状态

systemctl status docker

2️⃣ 检查 iptables / firewalld

CentOS 默认有 firewalld,可能影响 Docker NAT。

systemctl stop firewalld
systemctl disable firewalld

然后重启 Docker:

systemctl restart docker

四、指定容器使用宿主机网络(host 模式)

docker run -it --network host centos bash

✅ 容器直接使用宿主机网络
❌ 不支持端口映射(-p 无效)


五、自定义桥接网络(推荐)

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

适合多容器通信。


六、Docker 使用代理上网(公司内网常见)

如果 CentOS 通过代理上网:

mkdir -p /etc/systemd/system/docker.service.d
vi /etc/systemd/system/docker.service.d/http-proxy.conf

内容:

[Service]
Environment="HTTP_PROXY=http://proxy.ip:port"
Environment="HTTPS_PROXY=http://proxy.ip:port"
systemctl daemon-reload
systemctl restart docker

七、快速排查清单 ✅

# 宿主机
ping 8.8.8.8
cat /etc/resolv.conf

# Docker
docker info
docker network ls
docker run --rm busybox ping 8.8.8.8

如果你能告诉我:

  • CentOS 版本(7 / 8 / Stream)
  • Docker 版本
  • 容器不能上网 还是 宿主机不能上网
  • 是否在 内网 / 云服务器 / 虚拟机

我可以给你更精确的解决方案。

0