如何让Docker自定义网络的IP流量转发设置永久生效?
在Ubuntu 22.04.1上持久化Docker自定义桥接网络的外部通信配置
当使用docker network create myname -d bridge创建Docker自定义桥接网络时,连接到该网络的容器可能无法与外部通信,必须在Docker主机上执行以下临时命令启用IP流量转发:
sysctl net.ipv4.conf.all.forwarding=1 sudo iptables -P FORWARD ACCEPT
正如Docker官方文档所述:
这些设置不会在重启后保留,因此可能需要将其添加到启动脚本中。
以下是在Ubuntu 22.04.1服务器上实现这些配置持久化的具体步骤:
1. 持久化IPv4转发设置
编辑/etc/sysctl.d/99-docker-forward.conf文件(若文件不存在则创建),添加以下内容:
net.ipv4.conf.all.forwarding=1
执行以下命令让配置立即生效:
sudo sysctl --system
2. 持久化iptables转发规则
Ubuntu 22.04默认使用nftables,但Docker依赖iptables。我们可以通过iptables-persistent工具保存规则:
- 安装工具:
sudo apt update && sudo apt install -y iptables-persistent
安装过程中会提示是否保存当前iptables规则,选择Yes即可。
- 若后续修改了iptables规则,执行以下命令保存:
sudo netfilter-persistent save
这样,系统重启后上述配置会自动加载,确保自定义桥接网络的容器始终能与外部通信。
内容的提问来源于stack exchange,提问作者not2savvy
相关产品推荐
相关产品推荐

