首页
圈子
登录
docker 容器间网络配置-["docker"]-星星小屋
其它docker 容器间网络配置
作者:偶尔小澎湃
发布于:2026/05/22 14:20:39
阅读量:1
文章标签
docker

这个优雅的解决方案在 Docker 里叫做 创建自定义桥接网络(Custom Bridge Network)

正如你之前遇到的情况,在 Docker 默认的环境下,每个容器都是一座孤岛,它们的 localhost 都只代表自己。而如果我们把 Open WebUI 和 SearXNG 放到同一个自定义网络里,Docker 内部的 DNS 服务器就会自动启动。

这时候,它们互相访问不需要记局域网 IP,直接用容器的名字(Container Name)当作网址就行,哪怕你电脑重启、路由器换了 Wi-Fi、IP 全变了,它们也永远不会失联。

下面是具体的操作步骤:


第一步:用命令行创建一辆“专属公交车”

打开你的终端(Terminal),运行下面这行命令,创建一个名为 ai-network 的自定义网络:

docker network create ai-network

第二步:把你的两个容器“拉进”这个网络

你需要知道你当前运行的 Open WebUI 和 SearXNG 的容器名称。如果不确定,可以先用 docker ps 查一下。

假设你的 SearXNG 容器名叫 searxng,Open WebUI 容器名叫 open-webui。在终端分别运行:

# 将 SearXNG 容器加入网络
docker network connect ai-network searxng

# 将 Open WebUI 容器加入网络
docker network connect ai-network open-webui

注:docker network connect 极其方便,它可以在容器不停止、不重启的情况下,动态地把容器加入新网络。


第三步:去 Open WebUI 界面修改极简网址

现在,两座孤岛已经连上同一座桥了。

  1. 进入 Web 搜索设置: Admin Settings.打开 Open WebUI,进入 管理员设置 (Admin Settings) -> Web 搜索 (Web Search)
  1. 修改 SearXNG URL: 核心修改点.把原本填写的局域网 IP(类似 http://172.17.0.1:1314)删掉,直接改成:http://searxng:8080
  1. 保存并测试: 重要.滚动到最下方点击 Save (保存),然后开启新对话测试联网搜索。

💡 为什么端口变成了 8080?这正是 Docker 网络的妙处。以前用 http://宿主机IP:1314,是因为你把容器的 8080 端口映射到了宿主机的 1314。现在两个容器在内部网络“面对面”密谋,Open WebUI 可以直接穿透映射,去连 SearXNG 容器最原始的内部默认端口(通常是 8080)


📌 进阶:如果你是用 Docker Compose 部署的

如果你是用 docker-compose.yaml 把它们写在一起管理的 bread & butter,那就更简单了,连命令都不用敲。直接在 yaml 文件里为它们指定相同的 networks 即可:

version: '3'

services:
  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    networks:
      - ai-network

  searxng:
    image: searxng/searxng:latest
    container_name: searxng
    networks:
      - ai-network

networks:
  ai-network:
    driver: bridge

通过这种方式连通后,哪怕你把宿主机对外的 1314 端口完全关闭(在 docker 启动参数里去掉 -p 1314:8080),大模型依然能在容器内部和 SearXNG 快乐地通信,不仅更安全,局域网内的其他设备也无法刺探你的搜索流量了!

发表评论
下拉刷新
加载中
今日pv:
今日iv:
今日uv: