我正在尝试为此示例运行 docker-compose https://learn.microsoft.com/en-us/azure/aks/tutorial-kubernetes-prepare-app
我在我的 Windows 机器上设置了 Ubuntu 子系统来尝试这个例子。当我运行 docker-compose up -d
时,出现以下错误。
ERROR: Failed to Setup IP tables: Unable to enable NAT rule: (iptables failed: iptables --wait -t nat -I POSTROUTING -s 172.19.0.0/16 ! -o br-0fa5c62bc4ce -j MASQUERADE: iptables: No chain/target/match by that name.
我正在以管理员身份运行 ubuntu 子系统并以 root 用户身份登录。 更新 IP 表的 linux 子系统是否有限制?
最佳答案
WSL 子系统在 Microsoft 内核而非 Linux 内核上运行。
因此许多 Linux 网络命令不起作用,iptables 就是其中之一。
这里有关于附加信息、链接和更新信息的讨论 - https://github.com/Microsoft/WSL/issues/767
顺便说一句,FWIW,我用这个 https://github.com/RoliSoft/WSL-Distribution-Switcher
它将安装 docker 镜像,我还没有全部尝试过,到目前为止只是 Fedora。我会想象你期望在诸如 kali linux 之类的东西中运行的内核/网络繁重的应用程序将无法运行,尽管我怀疑 kali 工具是否已经过测试。大多数其他 docker 镜像应该可以工作,并且 docker 镜像可能针对 WSL 进行了更好的优化。
关于ubuntu - 在 windows ubuntu 子系统上运行 docker compose,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48072873/