DeepSeek本機部署(基于Ollama和Docker管理)

目錄

一、ollama 與 docker 簡介

(一)ollama(Ollama)

(二)docker

二、利用 ollama 和 docker 配置 deepseek-r1 的準備工作

(一)硬件需求

(二)軟件安裝

三、配置 deepseek-r1 的詳細步驟

(一)使用 ollama 獲取 deepseek-r1 模型

(二)利用 docker 創建 deepseek-r1 容器

查看模型列表

下載模型命令

注意事項

(三)啟動和測試 deepseek-r1 服務

四、這種配置方式的優勢

(一)快速部署

(二)環境隔離

(三)易于擴展

五、可能遇到的問題及解決方法

(一)網絡問題

(二)資源沖突


在人工智能技術日新月異的時代,大語言模型的應用越來越廣泛,DeepSeek 作為其中的佼佼者,備受開發者和技術愛好者的關注。通過在本機部署 DeepSeek,能夠更靈活地利用其強大功能。而借助 ollama 和 docker 進行 deepseek - r1 的配置,能為我們帶來更高效、便捷的部署體驗。

一、ollama 與 docker 簡介

(一)ollama(Ollama)

ollama 是一個強大的工具,它為模型的管理和運行提供了便利。它可以簡化模型的下載、配置和啟動過程,讓用戶能夠快速地將不同的模型集成到自己的工作流程中。例如,在處理多個不同類型的大語言模型時,ollama 可以輕松管理這些模型之間的切換和調用,提高開發效率。

(二)docker

docker 則是容器化技術的代表,它能夠將應用程序及其依賴項打包成一個獨立的容器。在 DeepSeek 部署中,使用 docker 可以確保 deepseek - r1 在不同環境中具有一致的運行狀態。無論在開發環境、測試環境還是生產環境,只要安裝了 docker,就可以運行相同的 deepseek - r1 容器,避免了因環境差異導致的兼容性問題。

二、利用 ollama 和 docker 配置 deepseek-r1 的準備工作

(一)硬件需求

同常規的 DeepSeek 部署類似,需要一臺性能不錯的計算機。內存建議 16GB 以上,這樣在運行容器和模型時,能夠保證系統的流暢性。同時,配備 NVIDIA GPU 會顯著提升模型的推理速度,對于處理大規模文本任務非常關鍵。

(二)軟件安裝

  1. 安裝 docker:可以從 docker 官方網站獲取適合你操作系統的安裝包,按照官方指引進行安裝。在安裝完成后,確保 docker 服務正常運行,可通過簡單的命令行測試來驗證(sheel中輸入docker)。
  1. 安裝 ollama:根據你使用的操作系統,選擇合適的安裝方式。例如,在 Linux 系統中,可以通過特定的腳本進行安裝。安裝完成后,配置好 ollama 的運行環境變量,確保其能夠被系統正確識別。

三、配置 deepseek-r1 的詳細步驟

可以看出DeepSeek-r1完全模型在各方面優于OpenAI,在某些方面評估甚至強于OpenAI,參數量適合于本地部署辦公使用。

(一)使用 ollama 獲取 deepseek-r1 模型

通過 ollama 的命令行工具,輸入特定的命令來搜索和下載 deepseek - r1 模型。ollama 會自動從官方或指定的源獲取模型文件,并將其存儲在本地的模型庫中。

(二)利用 docker 創建 deepseek-r1 容器

  1. 基于下載好的 deepseek - r1 模型,使用 docker 命令創建一個新的容器。在創建容器時,需要指定容器的名稱、掛載的目錄(以便與本地文件系統進行交互)以及容器運行所需的環境變量。

查看模型列表

可以訪問 ollama 官方的模型倉庫library查看支持的模型列表,點擊瀏覽某個模型,可看到詳細說明,如模型參數、大小、運行命令等信息。

下載模型命令

使用ollama pull命令進行下載。例如,若要下載圖片中的deepseek - r1?7b 模型,在命令行中輸入

ollama pull deepseek-r1:7b?

(若不指定具體版本如 7b 等,默認下載最新版本)。首次使用該命令運行模型時,ollama 也會自動從網上下載模型。

注意事項

  1. ? 下載速度可能受網絡狀況影響,如果網絡不穩定,下載模型可能需要較長等待時間。

? ? ?2.? ?部分模型對硬件資源有一定要求,如運行較大的模型(像 llama3 - 70b)可能會較慢,甚至出現硬件資源不足無法正常運行的情況,下載前可了解模型對硬件的需求。(主要是系統內存的要求)

????????配置容器的網絡設置,確保容器能夠與外部進行通信。可以根據實際需求,設置容器的端口映射,使本地應用能夠訪問到容器內運行的 deepseek - r1 服務。

(三)啟動和測試 deepseek-r1 服務

  1. (docker搭建請參照另一篇文章)完成容器創建后,使用 docker 命令啟動 deepseek - r1 容器。容器啟動后,ollama 會自動加載 deepseek - r1 模型,并啟動相關的服務進程。
  1. 通過編寫簡單的測試腳本,向運行在容器內的 deepseek - r1 服務發送請求,驗證模型是否正常工作。例如,可以發送一段文本,請求模型生成回答,檢查返回的結果是否符合預期。

? (四)WebUi的配置

搭建部署Open WebUI有兩種方式

  1. Docker方式(官網推薦)
  2. 源代碼部署安裝方式:(文檔🚀 Getting Started | Open WebUI)

Open WenUI 官網:GitHub - open-webui/open-webui: User-friendly AI Interface (Supports Ollama, OpenAI API, ...)

docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v D:devopen-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main

此命令啟動一個docker容器

  1. docker run:這是 Docker 用于運行容器的基本命令,它會根據指定的鏡像創建并啟動一個新的容器實例。
  2. -d:表示以守護進程(detached)模式運行容器,即容器會在后臺運行,不會占用當前命令行終端的輸入輸出流,方便執行其他命令。
  3. -p 3000:8080:端口映射參數,將容器內部的 8080 端口映射到主機的 3000 端口。這樣,通過訪問主機的 3000 端口,就可以訪問到容器內運行在 8080 端口上的open-webui應用。
  4. --add-host=host.docker.internal:host-gateway:此參數用于向容器內的/etc/hosts文件中添加一條主機映射記錄,將host.docker.internal映射到host-gateway。這在容器需要與主機進行通信時非常有用,特別是在一些特殊網絡環境下,使得容器能夠通過host.docker.internal這個域名訪問到主機。
  5. -v D:devopen-webui:/app/backend/data:這是卷掛載(volume mount)參數,將主機上的D:devopen-webui目錄掛載到容器內的/app/backend/data目錄。這意味著主機和容器可以共享這個目錄下的文件,主機目錄中的任何更改都會實時反映到容器內,反之亦然。常用于數據持久化或在容器和主機之間傳遞數據。
  6. --name open-webui:為運行的容器指定一個名稱為open-webui,方便后續對容器進行管理和操作,例如使用docker stop open-webui停止容器,或docker start open-webui啟動容器。
  7. --restart always:表示無論容器因為何種原因停止,Docker 都會自動嘗試重新啟動它,確保容器始終處于運行狀態。
  8. ghcr.io/open-webui/open-webui:main:這是容器所使用的鏡像名稱和標簽,指定從 GitHub Container Registry(ghcr.io)上拉取open-webui/open-webui鏡像的main版本。如果本地沒有該鏡像,Docker 會自動從指定的鏡像倉庫下載。

啟動ollama容器

? ?1.使用該命令啟動CPU版運行本地AI模型

docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

? ? 2.此命令用于啟動GPU版本運行AI模型

前提是筆記本已配置NVIDIA的GPU驅動,可在shell中輸入nvidia-smi查看詳細情況

docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

????

然后就可以訪問docker中給出的open webui的地址啟動web界面,選擇好模型就可以進行問答對話了,恭喜你擁有了自己的AI小助手!

四、這種配置方式的優勢

(一)快速部署

ollama 和 docker 的結合,大大縮短了 deepseek - r1 的部署時間。通過簡單的命令行操作,即可完成模型的獲取和容器的創建,相比傳統的手動配置方式,效率得到了極大提升。

(二)環境隔離

docker 的容器化技術實現了環境的隔離,使得 deepseek - r1 在獨立的環境中運行,不會受到本地系統其他軟件的干擾。同時,也方便對模型進行版本管理和維護,當需要更新或切換模型版本時,只需要重新創建或更新容器即可。

(三)易于擴展

在后續的應用中,如果需要增加模型的計算資源,或者部署多個 deepseek - r1 實例,可以輕松地通過 docker 的集群管理功能進行擴展。ollama 也能夠方便地管理多個模型之間的協同工作,滿足不同業務場景的需求。

五、可能遇到的問題及解決方法

(一)網絡問題

在下載模型或容器通信過程中,可能會遇到網絡不穩定的情況。解決方法是檢查網絡連接,嘗試更換網絡環境或使用代理服務器。同時,ollama 和 docker 都提供了相關的網絡配置選項,可以根據實際情況進行調整。

(二)資源沖突

當本地系統中已經運行了其他占用端口或資源的服務時,可能會與 deepseek - r1 容器產生沖突。可以通過修改容器的端口映射或調整本地服務的配置,來避免資源沖突。

利用 ollama 和 docker 配置 deepseek - r1 實現 DeepSeek 本機部署,為我們提供了一種高效、便捷且穩定的部署方式。隨著人工智能技術的不斷發展,這種基于容器化和模型管理工具的部署方法,將在更多的應用場景中發揮重要作用,推動大語言模型技術在本地開發和應用中的普及。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/73222.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/73222.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/73222.shtml

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

相關文章

小程序 wxml 語法 —— 39 簡單雙向數據綁定

在 WXML 中&#xff0c;普通屬性的綁定是單向的&#xff0c;比如 <input value"{{ value }}" />&#xff0c;當數據發生改變時&#xff0c;頁面也會隨之發生變化&#xff0c;但是當用戶在輸入框中輸入最新內容&#xff0c;最新內容并不會同步給 value 數據&…

Linux第一次練習

1、找到你的Linux系統上的不同顏色的文件&#xff0c;每一種顏色的文件找到3個以上 藍色&#xff1a; 白色&#xff1a; 綠色&#xff1a; 紅色&#xff1a; 黃色&#xff1a; 2、設置一個ping的別名永久生效&#xff0c;設置一個ymd的別名date %F永久生效

《C#上位機開發從門外到門內》2-2:I2C總線協議及其應用詳解

文章目錄 一、引言二、I2C總線協議的基本概念三、I2C通信機制3.1 硬件結構與基本原理3.2 信號的起始與終止3.3 數據傳輸格式及時序3.4 時鐘同步與時鐘伸展 四、設備尋址與數據傳輸4.1 I2C設備尋址方式4.2 地址沖突及解決方法4.3 數據傳輸過程中的確認機制4.4 I2C數據幀結構與傳…

Trae IDE:解鎖 AI 驅動的高效編程體驗

Trae 介紹 Trae 是字節跳動推出的一款面向開發者的 AI 驅動的集成開發環境&#xff08;IDE&#xff09;&#xff0c;于 2024 年 1 月 19 日在新加坡正式發布海外版&#xff0c;2025 年 3 月 3 日發布國內版。海外版由字節跳動旗下的 SPRING&#xff08;SG&#xff09;PTE.LTD.…

玩轉python:通俗易懂掌握高級數據結構:collections模塊之namedtuple

引言 namedtuple是Python中collections模塊提供的一個強大工具&#xff0c;用于創建具有字段名的元組。它不僅具備元組的不可變性&#xff0c;還能通過字段名訪問元素&#xff0c;極大地提高了代碼的可讀性和可維護性。本文將詳細介紹namedtuple的關鍵用法和特性&#xff0c;并…

我的創作紀念日:730天的技術寫作之旅

我的創作紀念日&#xff1a;730天的技術寫作之旅 機緣 從一篇案例分析開始 2023年3月13日&#xff0c;我寫下了第一篇技術博客《軟考高級-系統分析師-案例分析-系統維護與設計模式》。那時的初心很簡單&#xff1a; 沉淀實戰經驗——在備考軟考系統分析師時&#xff0c;發現…

使用 Arduino 和 ESP8266 Wi-Fi 模塊發送電子郵件

使用 Arduino Uno 和 ESP8266 Wi-Fi 模塊發送電子郵件 我們正在邁向物聯網 (IoT) 世界。這項技術在電子和嵌入式系統中起著非常重要的作用。從任何微控制器或嵌入式系統發送電子郵件都是非常基本的事情,這在 IoT 中是必需的。因此,在本文中,我們將學習“如何使用 Wi-Fi 和…

golang算法二叉樹對稱平衡右視圖

100. 相同的樹 給你兩棵二叉樹的根節點 p 和 q &#xff0c;編寫一個函數來檢驗這兩棵樹是否相同。 如果兩個樹在結構上相同&#xff0c;并且節點具有相同的值&#xff0c;則認為它們是相同的。 示例 1&#xff1a; 輸入&#xff1a;p [1,2,3], q [1,2,3] 輸出&#xff1a…

c++介紹智能指針 十二(1)

普通指針&#xff1a;指向內存區域的地址變量。使用普通指針容易出現一些程序錯誤。 如果一個指針所指向的內存區域是動態分配的&#xff0c;那么這個指針變量離開了所在的作用域&#xff0c;這塊內存也不會自動銷毀。動態內存不進行釋放就會導致內存泄露。如果一個指針指向已…

亞馬遜COSMO算法解讀:新搜索時代的流量分配與DeepBI AI驅動的智能優化策略

亞馬遜COSMO算法的推出&#xff0c;標志著其搜索和推薦系統進入了智能化、個性化的新階段。該算法通過分析用戶購物習慣、搜索歷史、瀏覽行為等數據&#xff0c;為買家提供精準推薦&#xff0c;同時對賣家的運營策略提出了更高的要求。在這一背景下&#xff0c;AI驅動的DeepBI能…

C++編譯問題——1模板函數的實現必須在頭文件中

今天編譯數據結構時&#xff0c;遇見一個編譯錯誤 假設你有一個頭文件 SeqList.h 和一個源文件 SeqList.cpp。 SeqList.h #ifndef SEQLIST_H #define SEQLIST_H#include <stdexcept> #include <iostream>template<typename T> class SeqList { private:sta…

安卓實現魔改版 CRC32 算法

版權歸作者所有&#xff0c;如有轉發&#xff0c;請注明文章出處&#xff1a;https://cyrus-studio.github.io/blog/ 關于 CRC32 算法介紹可以參考這篇文章&#xff1a;常用加解密算法介紹 標準 CRC32 算法 創建 crc32.cpp&#xff0c;使用 C 實現標準 CRC32 算法 #include …

OneHot編碼與OrdinalEncoder編碼的區別與應用解析

OneHot編碼和OrdinalEncoder編碼是兩種常見的類別特征編碼方式&#xff0c;它們的主要目的是將類別數據轉換為數值數據&#xff0c;以便機器學習算法能夠處理。下面是對這兩種編碼方式的詳細解釋和比較&#xff1a; 一、OneHot編碼 1. 定義&#xff1a; OneHot編碼是一種將每…

python離線安裝

Python Releases for Windows | Python.org 下載包地址widows一般是64bit的包 下載完成后雙擊&#xff0c;在彈出的首個頁面會看到下面的圖 第一步&#xff1a;建議手動安裝 第二步&#xff1a;一定要勾選把版本加入到Path路徑 然后就是無腦下一步&#xff0c;到這一步就可…

Web開發-PHP應用文件操作安全上傳下載任意讀取刪除目錄遍歷文件包含

知識點&#xff1a; 1、安全開發-原生PHP-文件安全操作 2、安全開發-原生PHP-上傳讀取刪除包含等 3、安全開發-原生PHP-代碼審計文件安全 一、演示案例-WEB開發-文件安全-上傳下載讀取 文件上傳 $_FILES&#xff1a;PHP中一個預定義的超全局變量&#xff0c;用于在上傳文件時…

自然語言處理:文本聚類

介紹 大家好&#xff0c;博主又來和大家分享自然語言處理領域的知識了。今天給大家分享的內容是自然語言處理中的文本聚類。 文本聚類在自然語言處理領域占據著重要地位&#xff0c;它能將大量無序的文本按照內容的相似性自動劃分成不同的類別&#xff0c;極大地提高了文本處…

JavaScript 運算符詳解

引言 在 JavaScript 編程中&#xff0c;運算符是用于對數據進行操作的特殊符號。通過使用運算符&#xff0c;我們可以實現各種計算、比較和邏輯判斷等功能。JavaScript 中的運算符種類豐富&#xff0c;涵蓋了算術、比較、邏輯、賦值等多個方面。下面將詳細介紹各類運算符及其使…

基于javaweb的SpringBoot個人健康管理系統小程序微信小程序設計與實現(源碼+文檔+部署講解)

技術范圍&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬蟲、數據可視化、小程序、安卓app、大數據、物聯網、機器學習等設計與開發。 主要內容&#xff1a;免費功能設計、開題報告、任務書、中期檢查PPT、系統功能實現、代碼編寫、論文編寫和輔導、論…

責任鏈模式的C++實現示例

核心思想 責任鏈模式是一種行為設計模式&#xff0c;允許多個對象都有機會處理請求&#xff0c;從而避免請求的發送者與接收者之間的耦合。請求沿著處理鏈傳遞&#xff0c;直到某個對象處理它為止。 解決的問題 ?解耦請求發送者與處理者&#xff1a;請求的發送者無需知道具…

Java 無 GUI 瀏覽器:HtmlUnit 入門及實戰 [特殊字符]

文章目錄 HtmlUnit 入門功能簡介入門案例更多功能HtmlUnit 實戰需求頁面分析編碼參考? 本文目標: HtmlUnit 框架入門HtmlUnit 框架實戰:實現 HtmlUnit 訪問 Web 頁面,并實現 Web 頁面按鈕點擊,同時獲取到下載的文件。HtmlUnit 入門 ?? 官網:https://htmlunit.sourcefo…