今天使用docker部署了xxl-job,然后调用的时候发现日志全是失败。
任务触发类型:Cron触发
调度机器:172.17.0.2
执行器-注册方式:自动注册
执行器-地址列表:[http://192.168.0.153:9999]
路由策略:第一个
阻塞处理策略:单机串行
任务超时时间:0
失败重试次数:0
>>>>>>>>>>>触发调度<<<<<<<<<<<
触发调度:
address:http://192.168.0.153:9999
code:500
msg:xxl-rpc remoting error(No route to host (Host unreachable)), for url : http://192.168.0.153:9999/run
以为是容器IP问题,排查了半天,发现并不是,特此记录一下。
问题核心其实是默认开启了防火墙,导致端口被限制,最终调不通。
解决步骤:
1、关闭防火墙。
查看状态,发现防火墙是出于运行的状态:
systemctl status firewalld
禁用防火墙:
systemctl stop firewalld
2、重启docker
其实一开始的操作是直接重启xxl-job容器,但是发现报错了。
重启docker容器时报错:
iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 5000 -j DNAT --to-destination 172.18.0.4:5000 ! -i br-ff45d935188b: iptables: No chain/target/match by that name. (exit status 1)
解决方案:防火墙关闭后要重启docker
systemctl restart docker
3、重启容器