Docker、cgroup v2 与 iptables 透明代理
本文距离上次更新已经超过 900 天。因此,其中的信息可能已经过时。
太长不看版:
- iptables 的 cgroup 选择功能会在 Docker 启动后失效。
- 这是因为 Docker 启动时似乎会带起
net_cls
和net_prio
这两个来自 cgroup v1 的控制器,而它们与 cgroup matching 不兼容。 - 一个临时的解决方案是强制禁用这两个控制器(方法见上链接)。注意:这对 Docker 的使用可能会造成影响。
- Docker 即将发布的 20.10 版本将实验性支持 cgroup v2。
- 届时,我们或许可以完全关闭 cgroup v1,投入 cgroup v2 的怀抱,完全避免 cgroup matching 失效的问题。
待 Docker 20.10 正式发布之后,Re:Linked 会写篇文章详细讨论「走向 cgroup v2 之路」。