2025年10月

Docker容器常见的网络模式

  • Bridge 模式:Docker 创建虚拟网桥 docker0,容器连接到这个内部网络,通过 NAT 和端口映射与外部通信
  • Host 模式:容器直接使用宿主机的网络栈,绕过 Docker 的虚拟网络

关键机制:IP 转发
Linux 内核的 IP 转发 功能相当于系统的"路由器",允许数据包在不同网络接口(物理网卡 ↔ 虚拟网桥)之间流动。

飞牛OS 默认关闭了这个功能 (net.ipv4.ip_forward=0),导致:Bridge 网络的容器流量无法正确路由,Host 模式不受影响(因为它不依赖虚拟网络)。

方法一:临时解决方案

# 开启 IP 转发    
sudo sysctl -w net.ipv4.ip_forward=1

# 验证配置
# 输出:net.ipv4.ip_forward = 1
sysctl net.ipv4.ip_forward

方法二:永久解决方案

方案 A:使用 echo 命令修改配置文件

# 1. 将配置追加到 sysctl 配置文件
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf

# 2. 立即加载配置(无需重启)
sudo sysctl -p /etc/sysctl.conf

# 3. 验证配置
sysctl net.ipv4.ip_forward

方案 B:使用文本编辑器修改配置文件

# 1. 编辑配置文件
sudo vim /etc/sysctl.conf
# 或者使用 nano
sudo nano /etc/sysctl.conf

# 2. 在文件末尾添加或取消注释
net.ipv4.ip_forward=1

# 3. 保存后加载配置
sudo sysctl -p /etc/sysctl.conf