【記錄】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://www.pswp.cn/bicheng/96516.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/96516.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/96516.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

數據庫物理外鍵與邏輯外鍵全解析

一、核心概念 1. 物理外鍵 (Physical Foreign Key) 物理外鍵是數據庫層面通過語法明確創建的外鍵約束。它是由數據庫管理系統(DBMS)本身(如 MySQL, PostgreSQL, Oracle)來強制實現的。 它是什么:數據庫表結構的一部分&…

Vue3入門到實戰,最新版vue3+TypeScript前端開發教程,創建Vue3工程,筆記03

筆記03 一、創建Vue3項目 1.1、創建方式 使用vue-cli創建使用vite創建(推薦)Vue3官網創建項目文檔 兩種創建方式,推薦使用第二種。vue-cli是基于webpack實現的,vite是新一代前端構建工具。 2.1、vue3項目結構

企業如何利用群暉 NAS 構建高效數據備份與容災體系

在數字化轉型的過程中,企業數據已成為核心資產。然而,勒索病毒攻擊、硬件故障、操作失誤以及自然災害等風險,都可能導致數據丟失甚至業務中斷。如何構建一個高效、安全、可恢復的數據備份與容災體系,已成為企業 IT 管理的關鍵課題…

關于在pycharm終端連接服務器

1、先為每個項目創建一個虛擬環境2、使用命令下載torchpip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple安裝之后發現安裝在了本地,我需要安裝到服務器里面,此時可以把本地的刪除,因為是默認安裝到c盤,除非你指定路…

CSS 繼承 (Inheritance)

一、核心概念CSS 繼承是指某些 CSS 屬性如果被設置在父元素上,其值會自動流向(應用到)其所有后代元素(子、孫元素等)的特性。核心價值:通過將樣式聲明應用于祖先元素,可以避免在所有后代元素上重…

UGUI源碼剖析(15):Slider的運行時邏輯與編輯器實現

UGUI源碼剖析(第十五章):Slider的運行時邏輯與編輯器實現 在之前的章節中,我們已經深入了UGUI眾多核心組件的運行時源碼。然而,一個完整的Unity組件,通常由兩部分構成:定義其在游戲世界中行為的…

【Python】爬蟲html提取內容基礎,bs4

前言 BeautifulSoup也就是bs4,里面功能其實有很多,不過對于爬蟲而言主要掌握一下幾塊就可以了 怎么找標簽?找到標簽后怎么獲取屬性,怎么獲取文本內容如何通過找到的標簽繼續獲取子標簽 安裝 pip install bs4案例 對于找標簽來說&#xf…

組件庫打包工具選型(npm/pnpm/yarn)的區別和技術考量

組件庫打包工具選型:npm/pnpm/yarn的區別與技術考量 一、核心差異概述 組件庫打包工具的選擇,本質是在??依賴管理效率??、??磁盤空間占用??、??Monorepo支持??、??安裝速度??及??幽靈依賴風險??之間做權衡。npm作為Node.js默認工具…

新型APT組織“嘈雜熊“針對哈薩克斯坦能源部門發起網絡間諜活動

感染鏈圖示 | 圖片來源:Seqrite實驗室APT研究團隊 Seqrite實驗室APT研究團隊近日發布了一份深度分析報告,披露了一個自2025年4月起活躍的新型威脅組織"嘈雜熊"(Noisy Bear)。該組織主要針對哈薩克斯坦石油天然氣行業,攻擊手法結合…

OpenCV 圖像直方圖

目錄 一、什么是圖像直方圖? 關鍵概念:BINS(區間) 二、直方圖的核心作用 三、OpenCV 計算直方圖:calcHist 函數詳解 1. 函數語法與參數解析 2. 基礎實戰:計算灰度圖直方圖 代碼實現 結果分析 3. 進…

Firefox Window 開發流程(四)

1 引言 在進行 Firefox 瀏覽器的二次開發、內核研究或自定義構建之前,最重要的步驟就是拉取源碼并進入 Mozilla 官方提供的開發引導模式。這不僅是所有定制工作的起點,同時也決定了后續開發環境的穩定性與可維護性。本文將從源碼獲取、工具使用、引導腳…

mybatis plus 使用wrapper輸出SQL

在MyBatis-Plus中,Wrapper對象用于構建復雜的查詢條件。雖然MyBatis-Plus本身沒有直接提供從Wrapper對象獲取完整SQL語句的方法,但你可以通過一些間接的方式來獲取生成的SQL片段。以下是如何使用MyBatis-Plus的Wrapper來獲取SQL片段的步驟:?…

第1章:操作系統和計算機網絡

1. 操作系統和計算機網絡組成目標概述1.1. 核心知識操作系統和網絡知識很龐大,大多內容枯燥無味,主功最常用的,符合2/8原則。操作系統:內核、性能、磁盤IO、內存、CPU進程、線程、文件、中斷計算機網絡:OSI七層模型、T…

day27|前端框架學習

1、驗證。前后端連接,authentication2、action,在pinia,管理狀態,處理異步操作(API/Firebase)。methods。在vue組件,處理組件內部邏輯3、滑動窗口,能有大致思路,但是自己…

單片機啟動文件——數據段重定位,BSS段清零

目錄重定位概念的引入一、數據段重定位1.作用:2.目的:3.自己模擬代碼二、BSS段清零1.作用:2.目的:3.自己模擬代碼三,實現原理重定位概念的引入 單片機中內存段的詳細介紹 在單片機中內存分為了很多不同的區域&#xf…

QT(3)

四、基本組件1. Designer設計師(掌握)Qt Designer 是 Qt 提供的可視化界面設計工具,支持通過拖拽組件快速構建 GUI 界面,生成的界面文件以 .ui格式保存(基于 XML 的標簽語言)。??核心功能??&#xff1a…

常用注解:@PostMapping、@RequestBody、@Autowired、@Service、@Mapper

1. PostMapping作用:將方法綁定到 HTTP POST 請求的特定路徑上用法:PostMapping("/login") // 綁定到 POST /login PostMapping("/employees") // 綁定到 POST /employees PostMapping("/users/{id}") …

SoC日志管理

目錄 一、汽車控制器中日志的核心類型 二、日志管理的核心環節與策略 1. 日志采集:確保“全面且不冗余” 2. 日志存儲:平衡“可靠性”與“存儲成本” 3. 日志安全:防止“篡改與泄露” 4. 日志生命周期:符合“法規與成本” 5. 日志工具與實現 三、汽車場景的特殊約束與應對 …

橫評五款開源多智能體框架,AI高手都在用哪個?下一款Manus、Cursor、Devin,誰能撐起來?

Agent 成為共識的速度非常快。但今年 Agent 的真正轉折點在于:多智能體。 從科研自動化到任務編排,從自動開淘寶店到 Vibe 一切,從 AI 瀏覽器到今天的 ChatGPT Agent,一切都是多智能體的味道。 但要真正搭建一個多智能體&#x…

GitHub每日最火火火項目(9.10)

1. Physical-Intelligence / openpi 項目名稱:openpi項目介紹:基于 Python 開發,聚焦于物理智能領域,為相關研究與應用提供支持。Python 在科學計算、人工智能等領域有著廣泛且成熟的生態,借助其豐富的庫(如…