在Docker容器中暴露11434端口来访问Ollama本地模型

问题描述 投票:0回答:1

我正在尝试将本地 Ollama 2 模型(在本地计算机上使用端口 11434)与运行 Linux Ubuntu 22.04 的 Docker 容器连接。我可以确认 Ollama 模型绝对有效并且可以通过 http://localhost:11434/ 访问。在我的 Docker 容器中,我还运行 GmailCTL 服务,并且能够成功连接 Google / Gmail API 以从 Google 帐户读取和发送电子邮件。现在我想等待一封电子邮件,让LLM将电子邮件回复给发件人。但是,我无法发布 11434 端口以将模型与容器连接。

我尝试设置 devcontainer.json 文件来转发端口:

{ "name": "therapyGary", "build": { "context": "..", "dockerfile": "../Dockerfile" }, "forwardPorts": [80, 8000, 8080, 11434] }

我尝试在 Dockerfile 中公开端口:

暴露80 曝光 8000 曝光8080 曝光11434`

这些似乎将端口添加到容器中,并且 Docker 知道它们,但是当我检查当前使用的映像的端口状态时,我收到以下消息: “错误:没有为 5ae41009199a 发布公共端口‘11434’”

我还尝试设置 docker-compose.yaml 文件:

services: my_service: image: 53794c7c792c # Replace with your actual Docker image name ports: - "11434:11434" - "8000:8000" - "8080:8080" - "80:80"

但是它似乎有一个问题,任何装有它的容器都会自动停止。

在运行容器之前,我尝试停止 Ollama 模型,以免产生冲突,但这也没有帮助。非常欢迎任何建议。

谢谢!

-- 编辑-- 添加 Dockerfile 代码: 来自 ubuntu:22.04

ENV DEBIAN_FRONTEND=非交互式 ENV GMAILCTL_VERSION=0.10.1

运行 apt-get update && apt-get install -y
蟒蛇3
python3-pip
xdo工具
卷曲
软件属性通用
自由办公室
解压
&& 易于清洁

运行 pip3 install --upgrade pip 运行 pip3 install google-api-python-client google-auth-httplib2 google-auth-oauthlib pandas requests

运行 useradd -ms /bin/bash devuser

RUN mkdir -p /workspace && chown -R devuser:devuser /workspace

用户根目录

工作目录/工作区

复制。 .

RUN chown -R devuser:devuser /workspace

暴露80 曝光 8000 暴露8080 曝光11434

CMD [“bash”]

python docker port publish ollama
1个回答
0
投票

因此删除

EXPOSE 11434
语句,它的作用是让您使用该端口连接到 docker 容器中的服务。
11434
在您的主机上运行,而不是在您的 Docker 容器上。

要让 docker 容器看到主机上的端口

11434
,您需要使用
host
网络驱动程序,以便它可以看到本地网络上的任何内容。为此,您可以使用
runArgs
参数:

{ "name": "therapyGary", 
"build": 
  { "context": "..", 
    "dockerfile": "../Dockerfile" 
  }, 
"forwardPorts": [80, 8000, 8080, 11434] 
}

会变成

{ "name": "therapyGary", 
"build": 
  { "context": "..", 
    "dockerfile": "../Dockerfile" 
  }, 
"forwardPorts": [80, 8000, 8080],
"runArgs": ["--net:host"]
}

然后,在您的容器内,您应该能够通过引用容器中的

11434
localhost
来联系端口
127.0.0.1
上的 LLM。例如。在netcat
nc localhost 11434
。如果您使用的是 Docker Desktop,则需要通过进入
Features in development
中的
Settings
选项卡并选择
Enable host networking
选项来启用主机网络,请参阅此处的文档:Docker Desktop

参考资料:

Dev 容器镜像特定属性

Docker 引擎主机网络驱动参考

© www.soinside.com 2019 - 2024. All rights reserved.