解决飞牛OS docker unless-stopped 重启策略问题

飞牛OS 这个bug从最开始就一直有到现在二六年三月份月底都还没有解决。

飞牛官方论坛上的解决方法是修改服务文件,但是会每次更新会覆盖导致修改事项。 https://club.fnnas.com/forum.php?mod=viewthread&tid=11143

随便问一下AI如何解决这个问题的解决方法是创建一个文件配置文件覆盖掉官方的docker服务配置,下面是命令。


覆盖配置目录

创建 Docker 服务的「覆盖配置目录」(systemd 优先读取)

mkdir -p /etc/systemd/system/docker.service.d/

写入覆盖配置

写入覆盖配置(直接清空 ExecStop,彻底禁用强制关闭)

cat > /etc/systemd/system/docker.service.d/override.conf <<'EOF' [Service] # 清空官方的 ExecStop 指令,彻底禁用强制关闭所有容器的逻辑 ExecStop= # 可选:如果你需要正常的停止逻辑,用这行(只停止 docker 守护进程,不杀容器) # ExecStop=/usr/bin/docker systemctl stop EOF

核心原理

为什么永不被覆盖

  • systemd 的优先级规则:/etc/systemd/system/docker.service.d/*.conf > 官方的 docker.service
  • 系统更新 Docker 时,只会覆盖 /lib/systemd/system/docker.service 或 /etc/systemd/system/docker.service,但永远不会动 docker.service.d 目录下的配置
  • ExecStop= 这行的作用是「清空」官方配置里的 ExecStop 指令,相当于直接删除了那行强制关闭脚本

标签:

评论:

Loading comments...