容器運行時支持GPU,并使用1panel安裝ollama

前言

安裝Docker請看之前博文:Docker實戰中1panel方式安裝Docker。

安裝 NVIDIA 容器工具包

https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html

安裝

先決條件

  1. 閱讀有關平臺支持的部分。
  2. 為您的 Linux 發行版安裝 NVIDIA GPU 驅動程序。NVIDIA 建議使用發行版對應的軟件包管理器安裝驅動程序。有關使用軟件包管理器安裝驅動程序的信息,請參閱NVIDIA 驅動程序安裝快速入門指南。或者,您也可以通過下載安裝程序來安裝驅動程序.run
    在使用 cgroup 驅動程序的系統上存在一個已知問題,systemd該問題會導致容器在運行時失去對所請求 GPU 的訪問權限 。請參閱故障排除文檔了解更多信息。systemctl daemon reload

使用apt:Ubuntu,Debian(不可用)

  1. 配置生產存儲庫:
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

(可選)配置存儲庫以使用實驗包:

sed -i -e '/experimental/ s/^#//g' /etc/apt/sources.list.d/nvidia-container-toolkit.list
  1. 從存儲庫更新軟件包列表:
sudo apt-get update
  1. 安裝 NVIDIA Container Toolkit 軟件包:
export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.17.8-1sudo apt-get install -y \nvidia-container-toolkit=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \nvidia-container-toolkit-base=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \libnvidia-container-tools=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \libnvidia-container1=${NVIDIA_CONTAINER_TOOLKIT_VERSION}

很不幸,結果報錯:

錯誤:7 [https://nvidia.github.io/libnvidia-container/stable/deb/amd64](https://nvidia.github.io/libnvidia-container/stable/deb/amd64) InRelease Could not handshake: Error in the pull function. [IP: 185.199.110.153 443] 
錯誤:8 [https://nvidia.github.io/libnvidia-container/experimental/deb/amd64](https://nvidia.github.io/libnvidia-container/experimental/deb/amd64) InRelease Could not handshake: Error in the pull function. [IP: 185.199.110.153 443] 正在讀取軟件包列表... 完成 
W: 無法下載 [https://nvidia.github.io/libnvidia-container/stable/deb/amd64/InRelease](https://nvidia.github.io/libnvidia-container/stable/deb/amd64/InRelease) Could not handshake: Error in the pull function. [IP: 185.199.110.153 443] 
W: 無法下載 [https://nvidia.github.io/libnvidia-container/experimental/deb/amd64/InRelease](https://nvidia.github.io/libnvidia-container/experimental/deb/amd64/InRelease) Could not handshake: Error in the pull function. [IP: 185.199.110.153 443] 
W: 部分索引文件下載失敗。如果忽略它們,那將轉而使用舊的索引文件。 

下載deb后安裝(可用)

  1. 首先查看上面安裝命令里面的這個鏈接
    https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list
deb https://nvidia.github.io/libnvidia-container/stable/deb/$(ARCH) /
#deb https://nvidia.github.io/libnvidia-container/experimental/deb/$(ARCH) /
  1. 點進去https://nvidia.github.io/libnvidia-container/stable/deb
    頁面顯示Unsupported distribution or misconfigured repository settings

  2. 在這個頁面找到GitHub Pages repository structure

  • stable/deb: https://github.com/NVIDIA/libnvidia-container/tree/gh-pages/stable/deb
  • experimental/deb: https://github.com/NVIDIA/libnvidia-container/tree/gh-pages/experimental/deb
  • stable/rpm: https://github.com/NVIDIA/libnvidia-container/tree/gh-pages/stable/rpm
  • experimental/rpm: https://github.com/NVIDIA/libnvidia-container/tree/gh-pages/experimental/rpm
  1. 好嘛,找到老巢了
    https://github.com/NVIDIA/libnvidia-container/tree/gh-pages/stable/deb/amd64

  2. 下載下面幾個文件,安裝即可

sudo dpkg -i nvidia-container-toolkit_1.17.7-1_amd64.deb nvidia-container-toolkit-base_1.17.7-1_amd64.deb libnvidia-container1_1.17.7-1_amd64.deb libnvidia-container-tools_1.17.7-1_amd64.deb

配置

先決條件

  • 您安裝了受支持的容器引擎(Docker、Containerd、CRI-O、Podman)。
  • 您安裝了 NVIDIA Container Toolkit。

配置Docker

  1. 使用以下nvidia-ctk命令配置容器運行時:
sudo nvidia-ctk runtime configure --runtime=docker

nvidia-ctk命令會修改/etc/docker/daemon.json主機上的文件。該文件已更新,以便 Docker 可以使用 NVIDIA 容器運行時。

{"runtimes": {"nvidia": {"args": [],"path": "nvidia-container-runtime"}}
}
  1. 重新啟動 Docker 守護進程:
sudo systemctl restart docker

配置 containerd(用于 Kubernetes)

  1. 使用以下nvidia-ctk命令配置容器運行時:
sudo nvidia-ctk runtime configure --runtime=containerd

nvidia-ctk命令會修改/etc/containerd/config.toml主機上的文件。該文件已更新,以便 containerd 可以使用 NVIDIA 容器運行時。

  1. 重啟containerd:
sudo systemctl restart containerd

運行示例工作負載

https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/sample-workload.html

安裝和配置工具包并安裝 NVIDIA GPU 驅動程序后,您可以通過運行示例工作負載來驗證您的安裝。

  • 運行示例 CUDA 容器:
sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi

您的輸出應類似于以下輸出:

Thu Aug 14 13:54:11 2025       
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 575.64.03              Driver Version: 575.64.03      CUDA Version: 12.9     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 4090        Off |   00000000:01:00.0  On |                  Off |
| 31%   37C    P8             34W /  450W |    1280MiB /  24564MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------++-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|  No running processes found                                                             |
+-----------------------------------------------------------------------------------------+

1panel安裝docker版ollama

從應用商店安裝

  1. 端口外部訪問勾選上
  2. GPU配置如下:
reservations:devices:- capabilities:- gpucount: alldriver: nvidia
  1. 模型掛載換了下路徑:
volumes:- /home/d/.ollama:/root/.ollama

在這里插入圖片描述

GPU監控

很是方便,媽媽再也不用擔心忘記敲:nvidia-smi
在這里插入圖片描述

模型

之前寫過一篇直接安裝ollama的博文:使用ollama部署本地大模型(沒有GPU也可以),實現IDEA和VS Code的git commit自動生成,其中模型位置:/usr/share/ollama/.ollama/models
在docker掛載中改為了/home/d/.ollama/models,點擊從服務器同步即可
在這里插入圖片描述

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

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

相關文章

高并發內存池 性能瓶頸分析與基數樹優化(9)

文章目錄前言一、性能瓶頸分析操作步驟及其環境配置分析性能瓶頸二、基數樹優化單層基數樹二層基數樹三層基數樹三、使用基數樹來優化代碼總結前言 到了最后一篇嘍,嘻嘻! ??終于是要告一段落了,接下來我們將學什么呢,再說吧&…

C#面試題及詳細答案120道(01-10)-- 基礎語法與數據類型

《前后端面試題》專欄集合了前后端各個知識模塊的面試題,包括html,javascript,css,vue,react,java,Openlayers,leaflet,cesium,mapboxGL,threejs&…

機器翻譯:回譯與低資源優化詳解

文章目錄一、機器翻譯的瓶頸二、回譯(Back-Translation)2.1 什么是回譯?2.2 為什么回譯有效?2.3 回譯的缺點與挑戰三、低資源優化詳解3.1 數據層面策略3.2 模型層面策略3.3 架構層面策略四、回譯與低資源優化對比4.1 回譯與低資源…

leetcode-python-344反轉字符串

題目: 編寫一個函數,其作用是將輸入的字符串反轉過來。輸入字符串以字符數組 s 的形式給出。 不要給另外的數組分配額外的空間,你必須原地修改輸入數組、使用 O(1) 的額外空間解決這一問題。 示例 1: 輸入:s [“h”,“…

【Python】新手入門:什么是python字符編碼?python標識符?什么是pyhon保留字?

?? 個人主頁:(時光煮雨) ?? 高質量專欄:vulnhub靶機滲透測試 ?? 希望得到您的訂閱和支持~ ?? 創作高質量博文(平均質量分95+),分享更多關于網絡安全、Python領域的優質內容!(希望得到您的關注~) ??文章目錄?? 前言 ??一、編碼 ??二、標識符 ??三、Py…

為什么要使用消息隊列呢?

消息隊列(Message Queue,MQ)在分布式系統中扮演著 ?異步通信樞紐? 的角色,其核心價值在于解決系統間的解耦、流量削峰、異步處理等關鍵問題。以下是它的核心價值及典型應用場景:?? 一、核心價值:解決什…

ROS機器人云實踐案例博客建議和范文-AI版本

海報圖AI圖1AI圖2zhangrelay的博客以技術深度、跨界思考和社會洞察為特色,內容兼具實用性與前瞻性,但部分觀點存在爭議,需結合具體主題辯證看待。以下從內容特色、技術深度、社會洞察、爭議點四個維度展開分析:一、內容特色&#…

UE小:編輯器模式下「窗口/鼠標不在焦點」時仍保持高幀率

要在UE編輯器模式下「窗口/鼠標不在焦點」時仍保持高幀率,可按下面做法: 關閉編輯器的后臺降頻選項:在 Edit -> Editor Preferences -> General -> Performance 中取消勾選 “Use Less CPU when in Background”。

VS2022 + Qt 5.15.2+Occ開發環境搭建流程

Visual Studio 2022 Qt 5.15.2 圖形處理開發環境搭建流程 1. 安裝 Visual Studio 2022 下載安裝程序:Visual Studio 官網選擇工作負載: ?? “使用C的桌面開發”?? “通用Windows平臺開發”(可選) 安裝組件: ??…

多任務并發:進程管理的核心奧秘

多任務(并發):讓系統具備同時處理多個任務的能力1. 多進程2. 多線程3. 進程間通信一、進程的基本概念1. 什么是進程?正在運行的程序,其運行過程中需要消耗內存和CPU。進程的特點:動態性:進程是程…

高效TypeScript開發:VSCode終極配置指南

?? VSCode TypeScript 專屬效率設置大全 (純 settings.json 配置) // .vscode/settings.json {/* 🔍 引用與類型追蹤 */"typescript.referencesCodeLens.enabled": true, // 顯示引用計數(點擊查看所有引用處)"typescript.implementationsCod…

資本的自我否定:四重矛盾中的歷史辯證法

資本自誕生以來,便以“增殖”為唯一使命,如同一個不知疲倦的擴張機器,在推動生產力飛躍的同時,也埋下了自我毀滅的種子。這種自我否定并非外部力量的強加,而是其內在邏輯的必然展開——從價格戰的困局到經濟危機的周期…

Linux系統安裝Docker及常見問題解決

1.1 解決安裝Docker問題 Linux的發行版本,大多數還是在用CentOS,雖然CentOS已經不更新了。。。。。CentOS因為不更新了,所以很多的yum源都失效了。導致安裝Docker失敗! 只需要更新一下yum源。直接將之前默認的yum源替換為阿里的…

CICD-Devops整合Kubernetes-4

Devops整合Kubernetes Kubernetes部署快速安裝Kubernetes **官網:**https://kuboard.cn/選擇默認支持docker的版本1.19前置環境部署 所有節點均需執行同操作 # 配置主機名解析 [rootKubernetes-master ~]# echo "127.0.0.1 $(hostname)" >> /etc/ho…

C/C++ 指針與內存操作詳解——從一級指針到字符串轉換函數的完整解析

C/C 指針與內存操作詳解——從一級指針到字符串轉換函數的完整解析 本文將帶你系統理解 一級指針與二級指針的區別、數組拷貝的注意事項、字符串轉整數函數實現 等 C/C 編程中常見且易混淆的知識點,并配合詳細代碼示例與常見坑點分析,讓你從入門到掌握。…

Java -- HashSet的全面說明-Map接口的常用方法-遍歷方法

目錄 1. HashSet的全面說明 2. Map接口實現類的特點 注意:講的是JDK8的Map接口特點 3. Map接口的常用方法 4. Map遍歷方法 1. HashSet的全面說明 1. HashSet實現了Set接口 2. HashSet實際上是HashMap 3. 可以存放null值,但是只能有一個null 4. H…

【python】類型注解

參考【為什么越來越多Python項目都在寫類型注解?】 https://www.bilibili.com/video/BV1sW81zbEkD/?share_sourcecopy_web&vd_source9332b8fc5ea8d349a54c3989f6189fd3代碼示例使用變量 : 類型名 來注解。""" python類型注解 """…

零基礎入門PostgreSQL教學視頻,持續更新

PostgreSQL數據庫在國內的迅速發展,引起了很多數據庫從業者的注意,不少人都想學習這個熱門的技術,但是畢竟有PostgreSQL有自己的特點與優勢,不同于Oracle、MySQL等數據庫,想要快速入門PostgreSQL技術需要下一些功夫。一…

PageAdmin與WordPress哪個適合企業建站

對于企業建站需求,PageAdmin和WordPress各有特點,以下是綜合對比分析: ?功能與專業性? ?PageAdmin?:專為企業級網站設計,內置自定義字段、表單和多站點管理功能,適合需要高定制化的企業官網、政府或學校…

微服務單元測試組件

背景 微服務的調試,哪怕是簡單問題,需要啟動9個服務,ui/nginx 網關 應用 auth 基礎數據服務 redis nacos 平臺服務 ,效率差得不行,準備開發一個支持微服務環境的單元測試組件, 組件解決3個問題&#xff1a…