【Docker】记录一次使用docker部署dify网段冲突的问题

记录一次使用docker部署dify网段冲突的问题

  • [1. 情况描述](#1. 情况描述)
  • [2. 问题根源](#2. 问题根源)
  • [3. 解决方案](#3. 解决方案)

1. 情况描述

  1. 有一台服务器,一个路由器,一个本地Windows电脑;

  2. 服务器连接到路由器中;路由器本身在内网的IP为172.19.xxx.xxx;服务器在路由器子网下的IP为192.168.xxx.xxx

  3. 服务器通过路由器的端口映射将22端口暴露出来,本地Windows电脑通过172.19.xxx.xxx:22使用SSH连接到服务器;

  4. docker部署dify,命令为docker compose up -d,服务全部启动后,SSH连接突然断开,怎么连都连不上;

  5. 查询各种资料无果,最后AI提出网段冲突的问题,遂排查。

2. 问题根源

  1. 确实是docker的网段冲突问题;

  2. 不是简单的网段冲突问题,而是docker误以为本地网段为192.168.xxx.xxx,于是直接使用默认的172.17.xxx.xxx网段;

  3. 由于当前已经存在172.17.xxx.xxx172.18.xxx.xxx、172.20.xxx.xxx的容器,docker在启动dify时自动顺延至172.19.xxx.xxx网段,导致docker网络地址与路由器网关地址冲突,于是SSH连接断开;

注:

  1. 为什么已经存在其他没有冲突的网段(17,18,20)?因为这台服务器之前是没有接路由器的,直接暴露在内网中,IP是172.19.xxx.xxx,docker在部署其他容器时自动避开了冲突网段;

  2. docker是会自动检查网段冲突 的:与AI的表述不同,实践上来看,docker确实会自动检查网段冲突。

3. 解决方案

修改/etc/docker/daemon.json,添加:

json 复制代码
{
	"default-address-pools": [
	    {
	      "base": "172.80.0.0/16",
	      "size": 24
	    }
	]
}

其中172.80.0.0/16可以是其他不冲突的自定义网段。

相关推荐
宝贝儿好6 小时前
【强化学习】第六章:无模型控制:在轨MC控制、在轨时序差分学习(Sarsa)、离轨学习(Q-learning)
人工智能·python·深度学习·学习·机器学习·机器人
智驱力人工智能6 小时前
守护流动的规则 基于视觉分析的穿越导流线区检测技术工程实践 交通路口导流区穿越实时预警技术 智慧交通部署指南
人工智能·opencv·安全·目标检测·计算机视觉·cnn·边缘计算
AI产品备案6 小时前
生成式人工智能大模型备案制度与发展要求
人工智能·深度学习·大模型备案·算法备案·大模型登记
AC赳赳老秦6 小时前
DeepSeek 私有化部署避坑指南:敏感数据本地化处理与合规性检测详解
大数据·开发语言·数据库·人工智能·自动化·php·deepseek
苏宸啊6 小时前
Linux指令篇(一)
linux·运维·服务器
wm10437 小时前
机器学习之线性回归
人工智能·机器学习·线性回归
通义灵码7 小时前
Qoder 支持通过 DeepLink 添加 MCP Server
人工智能·github·mcp
hkNaruto7 小时前
【AI】AI学习笔记:MCP协议与gRPC、OpenAPI的差异
人工智能·笔记·学习
狮子座明仔7 小时前
SimpleMem:让AI智能体拥有“过目不忘“的高效记忆系统
人工智能·microsoft
roamingcode7 小时前
超越 Context Window:为何文件系统是 AI Agent 的终极记忆体
人工智能·agent·cursor·claude code·上下文工程·skill 技能