当前位置: 首页 > news >正文

【记录】Docker|Docker内部访问LInux主机上的Ollama服务

部分内容参考自:使得 docker 容器内部可以访问宿主机的 ollama 服务_docker 访问 ollama-CSDN 博客,补充添加了更多的细节,也补充了一个更加简单的方案。
我测试的系统版本:Ubuntu 24.04.2 LTS noble,查看方式是指令 lsb_release -a

有时,我们会通过 docker run 或者 docker compose 来起一个服务,这个服务起在了 docker 容器内部,如果想让这个服务来访问宿主机的 ollama 服务,从而使用本地的大模型,需要如下:

文章目录

    • 一、配置 ollama 服务监听 0.0.0.0
      • 1. 编辑 systemd 服务文件
      • 2. 重启服务使配置生效
      • 3. 验证监听地址
    • 二、在启动服务时,要添加内部端口映射
      • 1. 172.17.0.1
      • 2. host.docker.internal

一、配置 ollama 服务监听 0.0.0.0

默认的 ollama 服务只监听 127.0.0.1:11434,docker 容器内部是无法访问到这个的(哪怕通过访问主机 ip:11434 也不可以)

1. 编辑 systemd 服务文件

打开 Ollama 的 systemd 服务配置文件:

sudo vim /etc/systemd/system/ollama.service

[Service] 部分添加监听地址的环境变量:

[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434" # 设置监听所有网络接口

如果你的 Environment 已经有内容了,可以用逗号分隔,如下:
在这里插入图片描述

2. 重启服务使配置生效

sudo systemctl daemon-reload # 重新加载服务配置
sudo systemctl restart ollama # 重启服务
sudo systemctl status ollama # 检查服务状态是否正常

不出意外的话可以看到Listening on [::]:11434
在这里插入图片描述

3. 验证监听地址

运行以下命令,检查 Ollama 是否已监听 0.0.0.0:11434

netstat -tuln | grep 11434 # 输出应为 ":::11434"

二、在启动服务时,要添加内部端口映射

添加端口映射有两种方案,两种方案都挺简单的,大家可以参考一下:

1. 172.17.0.1

这种方式你的 docker 运行指令和 docker_compose.yml 文件都不用变,访问主机上的服务用http://172.17.0.1:端口号就可以了,比如 ollama 可以用http://172.17.0.1:11434,这是 docker 自带的网桥。

你可以直接通过指定 url 为:https://172.17.0.1:11434 来访问宿主机的 ollama 服务。

验证方式可以是:

sudo apt install curl
curl https://172.17.0.1:11434

正常情况会输出Ollama is running

2. host.docker.internal

如果使用 docker run 启动,则需要

docker run --add-host=host.docker.internal:host-gateway -d your-app-image

如果使用 docker compose 启动,则docker_compose.yml中应该有如下代码(仅供参考):

version: '3'
services:your-app:image: your-app-imageenvironment:OLLAMA_API_URL: http://host.docker.internal:11434extra_hosts:- "host.docker.internal:host-gateway"  # Linux 需 Docker 20.10+支持

并且你可以通过先切换到 docker_compose.yml 的目录,再运行docker build -t your-app .的方式去创建 docker。然后再通过sudo docker run -itd --name "你的 docker 容器的名字" "your-app" /bin/bash的方式去运行 docker 容器。

也可以通过“docker-compose up -d”的方式去运行。

如果你发现 image 拉取不下来,可以看一下我的博客:【记录】Docker|Docker 镜像拉取超时的问题、推荐的解决办法及安全校验(以拉取 Ubuntu24.04 为例)_docker 拉取 ubuntu 超时-CSDN 博客

这样,你便可以通过指定 url 为:https://host.docker.internal:/11434/v1 来访问宿主机的 ollama 服务。

本账号所有文章均为原创,欢迎转载,请注明文章出处:https://shandianchengzi.blog.csdn.net/article/details/151398449。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。


文章转载自:

http://tiTTFfjz.Lkbyq.cn
http://GYszwn3U.Lkbyq.cn
http://l5jTBu09.Lkbyq.cn
http://IBCS6DhW.Lkbyq.cn
http://DIuoaj4z.Lkbyq.cn
http://G43Sj7BG.Lkbyq.cn
http://CEtfb9Vt.Lkbyq.cn
http://3qgVdnIG.Lkbyq.cn
http://0qf9SuzG.Lkbyq.cn
http://JOOz9gNZ.Lkbyq.cn
http://AAshL39I.Lkbyq.cn
http://wFOyidAU.Lkbyq.cn
http://cEQ5uUPQ.Lkbyq.cn
http://dsBXt2Jg.Lkbyq.cn
http://vL1vmO4b.Lkbyq.cn
http://fALpBQ2k.Lkbyq.cn
http://VKyiCxaO.Lkbyq.cn
http://yfkzIFwe.Lkbyq.cn
http://gnIVmBgr.Lkbyq.cn
http://sWiuikwP.Lkbyq.cn
http://X0Oqip5x.Lkbyq.cn
http://AoJ5AbI6.Lkbyq.cn
http://AmF31koD.Lkbyq.cn
http://iDvSYAO5.Lkbyq.cn
http://HPLmP1UZ.Lkbyq.cn
http://14ur9dm9.Lkbyq.cn
http://tjhEYYxq.Lkbyq.cn
http://riyx1TNo.Lkbyq.cn
http://vqgF5h1d.Lkbyq.cn
http://251MKh7Z.Lkbyq.cn
http://www.dtcms.com/a/377542.html

相关文章:

  • MySQL 日期时间类型:从入门到精通的核心指南
  • git 同时推送两个不同平台的版本管理库
  • SoC日志管理
  • 微服务网关全解析:从入门到实践
  • 《sklearn机器学习——数据预处理》类别特征编码
  • #C语言——刷题攻略:牛客编程入门训练(十一):攻克 循环控制(三),轻松拿捏!
  • 深入剖析 Chrome PartitionAlloc 内存池源码原理与性能调优实践
  • Shell 脚本编程:函数
  • C++ STL 容器的一个重要成员函数——`emplace_back`
  • vue3:触发自动el-input输入框焦点
  • python range函数练习题
  • Q2(门座式)起重机司机的理论知识考试考哪些内容?
  • 企业微信消息推送
  • 顺序表:数据结构中的基础线性存储结构
  • 什么是X11转发?
  • OpenCV计算机视觉实战(24)——目标追踪算法
  • 4.2 I2C通信协议
  • Spring Boot 读取 YAML 配置文件
  • 【系统分析师】第20章-关键技术:微服务系统分析与设计(核心总结)
  • SAP-MM:SAP MM模块精髓:仓储地点(Storage Location)完全指南图文详解
  • Shell脚本周考习题及答案
  • 广东省省考备考(第九十六天9.10)——言语(刷题巩固第二节课)
  • Pthread定时锁与读写锁详解
  • Go模块自动导入教学文档
  • 技术文章大纲:开学季干货——知识梳理与经验分享
  • TensorFlow平台介绍
  • Vue3 中实现按钮级权限控制的最佳实践:从指令到组件的完整方案
  • 生成模型与概率分布基础
  • Cookie之domain
  • JavaSSM框架-MyBatis 框架(五)