文档编号 | 维护人 | 内容 | 版本号 |
---|
时间+日期 2025070301 | WA | 内容简短描述 | V1.2 |
问题现象:#
用户重启服务器后,司空私有化服务部分容器自己无法启动,需要单独手动去启动一次就正常。
(背景:用户之前司空私有化服务器一切都正常,后面安装了ipset-persistent和iptables-persistent 后出现重启服务器后司空服务异常的情况。)问题原因:#
Docker 依赖 iptables/ipset 的 NAT / filter 表,而 netfilter-persistent(包括 ipset-persistent)在 Docker 启动之前先加载了老的规则(以及空的 ipset 配置),覆盖或冲掉了 Docker 自己在容器启动时写入的链和 ipset。解决方法一:#
禁用 ipset-persistent
这是最简单稳妥的做法(除非你有必须的 ipset 配置)。
禁用:
sudo systemctl disable netfilter-persistent解决方法二:#
调整启动顺序
确保 Docker 在 netfilter-persistent 之前启动,需要改systemd依赖关系:1. 步骤1:#
编辑 /lib/systemd/system/docker.service2. 步骤2:#
解决方法三:#
不改变iptables-persistent和ipset-persistent任何修改前提下,备份旧数据目录和安装目录后,拷贝到新创建的数据目录和安装目录,重新安装司空私有化服务器也可以解决。(注意生产环境确定是否有 在使用谨慎操作!)1. 步骤1:#
2. 步骤2#
3. 步骤3#
回到安装包解压目录下,修改evn文件,数据和安装路径指向实际环境路径(这里举例是/FH-new-data/和/FH-new-install)修改于 2025-07-30 10:49:43