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

相关推荐
NAGNIP6 小时前
一文搞懂深度学习中的通用逼近定理!
人工智能·算法·面试
冬奇Lab7 小时前
一天一个开源项目(第36篇):EverMemOS - 跨 LLM 与平台的长时记忆 OS,让 Agent 会记忆更会推理
人工智能·开源·资讯
冬奇Lab7 小时前
OpenClaw 源码深度解析(一):Gateway——为什么需要一个"中枢"
人工智能·开源·源码阅读
哥不是小萝莉8 小时前
OpenClaw 架构设计全解析
ai
AngelPP11 小时前
OpenClaw 架构深度解析:如何把 AI 助手搬到你的个人设备上
人工智能
宅小年11 小时前
Claude Code 换成了Kimi K2.5后,我再也回不去了
人工智能·ai编程·claude
九狼11 小时前
Flutter URL Scheme 跨平台跳转
人工智能·flutter·github
ZFSS11 小时前
Kimi Chat Completion API 申请及使用
前端·人工智能
warm3snow12 小时前
Claude Code 黑客马拉松:5 个获奖项目,没有一个是"纯码农"做的
ai·大模型·llm·agent·skill·mcp
天翼云开发者社区13 小时前
春节复工福利就位!天翼云息壤2500万Tokens免费送,全品类大模型一键畅玩!
人工智能·算力服务·息壤