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

相关推荐
Sinowintop1 小时前
易连EDI-EasyLink SFTP文件传输
运维·服务器·网络·sftp·edi·ftp·国产edi软件
风123456789~3 小时前
【Linux专栏】显示或隐藏行号、批量注释
linux·运维·服务器
春日见3 小时前
丝滑快速拓展随机树 S-RRT(Smoothly RRT)算法核心原理与完整流程
人工智能·算法·机器学习·路径规划算法·s-rrt
谢尔登3 小时前
简单聊聊webpack摇树的原理
运维·前端·webpack
只想安静的写会代码4 小时前
centos/ubuntu/redhat配置清华源/本地源
linux·运维·服务器
2501_941881404 小时前
Kubernetes 容器集群资源调度与弹性扩容高可用架构在互联网业务实战经验总结
云原生·容器·kubernetes
陈文锦丫4 小时前
MixFormer: A Mixed CNN–Transformer Backbone
人工智能·cnn·transformer
究極の法則に通じた野犬4 小时前
k8s设计理念-k8s中哪些服务要部署成StatefulSet哪些部署成Deployment
云原生·容器·kubernetes
wuxingge4 小时前
k8s集群误删node节点,怎么添加回去
云原生·容器·kubernetes
susu10830189114 小时前
ubuntu多块硬盘挂载到同一目录LVM方式
linux·运维·ubuntu