
openWRT中的docker在创建镜像的时候,如果选择bridge,可能会出现可以访问网关,却无法访问外网的问题.
可能的设置问题:
com.docker.network.bridge.enable_ip_masquerade": "false"
由于bridge是docker自动生成的网络,无法修改.
说明:
"com.docker.network.bridge.enable_ip_masquerade": "false" 是 Docker 网络配置中的一个选项,它的作用是控制 IP 伪装(IP Masquerading)功能是否启用。
作用
当该选项设置为 false 时,Docker 不会对从容器到外部网络的流量执行 IP 伪装(NAT)。这意味着:
1. 容器的流量不会使用宿主机的 IP 地址进行伪装,而是保留容器的源 IP 地址。
2. 如果容器的 IP 地址不是路由可达的(比如 172.17.0.0/16 默认 Docker 网络),那么容器可能无法访问外部网络。
3. 可能会影响容器访问互联网,特别是当宿主机不进行额外的 NAT 规则配置时。
默认值
Docker 默认情况下会启用 IP 伪装(即 "com.docker.network.bridge.enable_ip_masquerade": "true"),这样容器的流量在通过宿主机时会被转换,使其看起来像是从宿主机发出的,这样可以让容器更方便地访问外部网络。
解决办法: