You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将Docker Compose网关容器设为host网络模式时出现路由冲突错误

问题解决办法

错误根源

你把网关容器设置为network_mode: host后,仍保留了networks配置和端口映射,这会导致Docker同时尝试让容器使用宿主机网络栈,又要将它加入自定义的mynet网络并分配该网段的IP,而宿主机已有172.26.0.0/16的路由规则,IP分配直接冲突。

修复步骤

  1. 修改docker-compose.yml中网关服务的配置,删除ports和networks字段,添加network_mode: host:
gateway:
  image: <ms-yarp>
  environment:
    - ASPNETCORE_URLS=https://+:443;http://+:80
  volumes:
    - ./tls/:/tls/
  network_mode: host
  restart: on-failure
  1. 检查宿主机的80、443端口是否被其他进程占用,若有先停止对应进程:
# 检查80端口占用情况
lsof -i :80
# 检查443端口占用情况
lsof -i :443
  1. 重新部署容器:
docker compose down
docker compose up -d

补充说明

  • network_mode: host模式下,容器直接复用宿主机的网络栈,不需要配置端口映射,容器内的80/443端口直接对应宿主机的同端口。
  • 该模式下容器无法加入自定义Docker网络,如果你需要网关和其他容器通信,其他容器可以通过宿主机IP访问网关;或者你可以放弃host模式,改用端口映射+自定义网络的常规配置。

内容的提问来源于stack exchange,提问作者Parsa99

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 02:30:44