修改docker-compose.yml端口绑定后Airflow服务未监听tcp4端口问题求助
排查与解决步骤
第一步:验证现有监听是否已支持IPv4
多数Linux发行版默认开启了IPv6套接字兼容IPv4请求的配置,你现在看到的tcp6 :::8053监听可能已经可以处理IPv4请求,先直接执行测试:
curl http://127.0.0.1:8053/health
如果返回正常响应,说明端口实际已经可用,不需要额外调整配置。
第二步:检查内核IPv6绑定参数
如果上述测试失败,查看内核配置:
sysctl net.ipv6.bindv6only
如果返回值为1,说明系统禁止了IPv6套接字兼容IPv4,需要修改配置:
- 临时生效:执行
sysctl -w net.ipv6.bindv6only=0 - 永久生效:在
/etc/sysctl.conf中添加一行net.ipv6.bindv6only = 0,执行sysctl -p加载配置
第三步:调整Docker daemon默认绑定配置
查看Docker配置文件/etc/docker/daemon.json,如果存在"ip": "::"配置,将其修改为"ip": "0.0.0.0",如果文件不存在可以直接创建,参考配置如下:
{ "ip": "0.0.0.0" }
修改完成后重启Docker服务:
systemctl restart docker
第四步:清理旧容器重新启动
旧容器残留会导致配置不生效,执行以下命令完全重建服务:
# 注意:-v参数会删除本地挂载卷,如有重要数据请先备份再执行,或去掉-v参数 docker-compose down -v --remove-orphans docker-compose up -d --build
第五步:验证结果
重建完成后执行以下命令查看监听:
ss -tulpn | grep 8053
能看到0.0.0.0:8053的监听即配置生效,若仍只显示tcp6监听,再次执行第一步的curl测试,只要能正常返回结果就说明服务可用。
内容的提问来源于stack exchange,提问作者delalma
相关产品推荐
相关产品推荐

