我运行容器docker run --name my-nginx -d -p 8080:80 nginx:latest
报这个错误
WARNING: IPv4 forwarding is disabled. Networking will not work.
查询发现是因为Ipv4 转发 功能被禁用了
IP 转发是指在一个路由器上允许数据包从一个接口转发到另一个接口的能力。在 Docker 中,当你运行一个容器时,Docker 会创建一个网络命名空间(或使用现有的),并在其中设置网络配置。如果 IPv4 转发在主机上被禁用,那么在这个命名空间中配置的网络将无法正常工作,因为数据包不能从一个网络接口转发到另一个。
解决方法:
临时启用 IPv4 转发(对当前会话有效):
在主机上执行以下命令来临时启用 IPv4 转发:
sysctl -w net.ipv4.ip_forward=1
启用后,你可以重新运行你的 docker run 命令。
永久启用 IPv4 转发:
编辑 /etc/sysctl.conf 文件,添加或修改以下行:
net.ipv4.ip_forward=1
保存文件并退出编辑器,然后运行以下命令来应用更改:
sysctl -p
现在,IPv4 转发应该已经开启,你可以重新运行你的 docker run 命令。
请注意,如果你在一个受限环境中(例如在一个企业网络中),启用 IP 转发可能需要网络管理员的介入,因为这可能会影响到网络的安全和性能。在某些情况下,特别是在云服务提供商的虚拟机上,IP 转发可能默认就是启用的。
标签:Networking,启用,work,disabled,IPv4,转发,sysctl From: https://www.cnblogs.com/velloLei/p/18572254