Ubuntu20.04下Docker启动Kafka集群无法访问Landoop UI报连接重置
故障诱因
核心故障点是容器内负责托管Landoop UI、监听3030端口的caddy Web服务反复异常退出(退出状态码2),短时间重试过多进入FATAL状态,最终没有进程监听3030端口,浏览器访问自然返回连接重置。
caddy退出码2代表启动时配置加载失败或端口绑定失败,结合之前能正常访问、关机重启后触发故障的场景,具体诱因通常是两类:
- 非正常关机导致容器残留的caddy自动生成配置、临时缓存文件损坏,重启后caddy读取损坏配置直接启动失败
- 宿主机重启后3030端口被其他残留进程(未正常退出的旧docker代理进程、其他本地Web服务)占用,caddy无法绑定端口直接退出
其余日志里的现象均为正常行为:schema-registry首次启动依赖zookeeper、kafka服务就绪,短暂退出后自恢复符合预期;sample-data、smoke-tests、logs-to-kafka是一次性初始化任务,执行完成后退出状态码0属于正常退出,和本次UI访问故障无关。
修复步骤
按以下顺序操作即可恢复访问:
- 清理异常残留的容器资源
先停掉当前运行的异常集群,再清理退出状态的残留容器:sudo docker compose down sudo docker system prune -f - 排查并释放3030端口
执行命令检查3030端口的占用情况:
如果命令返回存在占用该端口的进程,执行sudo lsof -i :3030sudo kill -9 <返回结果里的PID数值>杀掉占用进程,确保3030端口处于空闲状态。 - 清理损坏的临时配置缓存(前两步执行后仍故障时再操作)
如果docker compose配置没有做自定义数据卷挂载,执行命令清理匿名卷里损坏的caddy配置:
该操作仅清理容器临时缓存,不会删除持久化存储的Kafka业务数据sudo docker volume prune -f
如果做了自定义卷挂载,找到宿主机上对应caddy配置的挂载目录,删除其中损坏的Caddyfile配置文件和缓存文件即可。 - 重新启动集群
执行原启动命令拉起服务:
等待日志不再输出caddy重启报错,约1分钟后访问sudo docker compose up kafka-clusterhttp://127.0.0.1:3030即可正常打开Landoop UI。
内容的提问来源于stack exchange,提问作者Filbadeha
相关产品推荐
相关产品推荐

