背景
我们需要在dify中配置ollama。
ollama服务起来之后,会把服务挂在localhost的11434上。
但是,我的dify一般是在docker里起的。
所以我在docker container里,访问localhost:11434时,实际无法访问到宿主机的11434,也就没办法调用宿主机上的ollama。
怎么解决?
方法一:
找到宿主机的IP地址:
在Linux上,你可以使用命令 ip addr show 查找你的网络接口的IP地址。
在Windows或Mac上,你可以使用命令 ifconfig 或者 ipconfig 查看网络配置信息。
修改容器中的命令:
替换curl localhost:11434为curl <宿主机IP>:11434。这样容器就会尝试连接到宿主机上的11434端口。
缺点:
ollama默认启动,不允许非localhost对它进行访问。
这个方法需要进一步地配置。
方法二:使用Docker的特殊DNS名称(仅限Docker for Mac/Docker for Windows)
如果你使用的是Docker for Mac或Docker for Windows,Docker提供了一个特殊的DNS名称 host.docker.internal,它解析为宿主机的内部IP地址。
修改容器中的命令: 替换curl localhost:11434为curl host.docker.internal:11434。
这个方法不错,在我这儿是有效的。
标签:docker,container,宿主机,11434,curl,Docker,localhost From: https://blog.csdn.net/xiezhipu/article/details/143783185