【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可以是其他不冲突的自定义网段。

相关推荐
非凸科技3 小时前
非凸智能APP
人工智能
姜太小白3 小时前
【Linux】df -h 卡住问题的通用排查与解决方案总结
linux·运维·php
张忠琳3 小时前
【NPU】Ascend Docker Runtime v26.0.1 之二 runtime/process/process.go — 超深度逐行分析
云原生·容器·架构·kubernetes·npu·docker-runtime
土星云SaturnCloud3 小时前
抽水蓄能设备智慧运营:基于土星云边缘计算实现机组全生命周期预测性维护
服务器·人工智能·ai·边缘计算
江畔柳前堤3 小时前
系统的本质——从LTI系统到神经网络
人工智能·深度学习·神经网络·机器学习·计算机视觉·数据挖掘·语音识别
HackTwoHub3 小时前
轻量化AI渗透武器库|ARTEX自主攻防系统、资产梳理、漏洞挖掘、链路分析全流程智能化落地
人工智能·安全·web安全·网络安全·系统安全·网络攻击模型·安全架构
fengyehongWorld3 小时前
Linux 终端快捷键
linux·运维
中电金信3 小时前
WAIC 2026媒体聚焦:中电金信的AI工程化思考与实践
人工智能
冬奇Lab4 小时前
码库知识库系列(03):代码 Embedding 策略——原始代码反而比注释增强更好
人工智能
冬奇Lab4 小时前
开源项目第172期:agentOS — 以库的形式给 AI Agent 一个操作系统,冷启动 92x 更快、内存 47x 更少
人工智能·开源·agent