在 CentOS 上使用 Docker 时,“联网通信”通常分为几种场景,我按常见情况给你说明,并给出配置方法。
bridge 网络 + iptables NATdocker run --rm centos ping -c 4 www.baidu.com
如果不能:
# 检查 IP 转发
cat /proc/sys/net/ipv4/ip_forward
# 应为 1
# 开启 IP 转发
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p
docker run -d --name c1 centos sleep 1000
docker run -d --name c2 centos sleep 1000
默认只能通过 IP 通信,不能用容器名。
docker network create mynet
docker run -d --name c1 --network mynet centos sleep 1000
docker run -d --name c2 --network mynet centos sleep 1000
在 c1 中:
ping c2
✅ 容器名即可解析
ping host.docker.internal
⚠️ 老版本 Docker 不支持,需要手动指定:
docker run --rm --add-host=host.docker.internal:host-gateway centos ping host.docker.internal
或直接使用宿主机 IP:
ip addr show
docker run -d -p 8080:80 nginx
访问:
http:// CentOS_IP:8080
⚠️ 注意防火墙:
firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reload
docker swarm init
docker network create -d overlay mynet
常用于 Kubernetes
systemctl status firewalld
setenforce 0
ip_forward = 1-p 映射/etc/resolv.conf)如果你能具体说一下:
我可以直接给你一套可执行的命令示例。