CTFd异常关闭时Whale插件的幽灵容器问题处理
CTFd-Whale通过数据库来记录存在哪些容器和服务,以便进行开启和关闭,但如果承载CTFd的服务器或者平台出现故障异常重启,或平台异常关闭,有可能导致记录丢失,容器和服务变身无主容器。
有人可能就想问了,我直接 docker ps 然后 docker stop,之后docker rm不就移除了吗?
错误的捏,我们通过研究Whale的代码可以发现,他是通过以下代码来创建容器的。
1 | client.services.create( |
也就是说,他创建了服务,然后服务再创建了容器,如果不消灭服务,那么就算你重启服务器,这个默认模式为replicated的服务也会不断给你创建容器,让你永远无法达到杀死容器的目的。
解决办法就是移除服务,举例如下
找到他创建的服务,直接rm掉服务,就可以解决问题了。
妈妈再也不用担心产生无主容器啦。
PS:我们Scr1w战队二次开发的CTFd整合版地址:https://github.com/dlut-sss/CTFD-Public
- 标题: CTFd异常关闭时Whale插件的幽灵容器问题处理
- 作者: IShirai_KurokoI
- 创建于 : 2023-06-29 00:00:00
- 更新于 : 2023-12-24 16:33:59
- 链接: https://ishiraikurokoi.top/2023-06-29-CTFd-Ghost-Container/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论