本地运行 Ollama Docker 指南 – wiki基地

“`markdown

本地运行 Ollama Docker 指南

简介

Ollama 是一款强大的工具,它使得在本地运行大型语言模型(LLMs)变得简单而高效。通过 Ollama,您可以轻松地下载、运行并管理各种开源模型,从而在您的机器上进行实验和开发,而无需依赖云服务。

Docker 是一个开源平台,用于开发、发布和运行应用程序。它通过使用容器来打包应用程序及其所有依赖项,确保应用程序在任何环境中都能一致运行。

将 Ollama 与 Docker 结合,可以在本地提供一个隔离、可移植且易于管理的 LLM 运行环境。这对于开发人员、研究人员和任何希望在本地探索 LLM 的人来说,都是一个理想的解决方案。

先决条件

在开始之前,请确保您的系统满足以下条件:

  1. Docker Desktop/Engine 安装:您需要在本地安装 Docker。请访问 Docker 官方网站 获取适用于您操作系统的安装指南。
  2. 基本 Docker 知识:熟悉 Docker 的基本概念(如镜像、容器、卷、端口映射)将有助于您更好地理解本指南。

步骤 1:拉取 Ollama Docker 镜像

首先,您需要从 Docker Hub 拉取 Ollama 的官方镜像。打开您的终端或命令提示符,并执行以下命令:

bash
docker pull ollama/ollama

此命令会下载最新版本的 Ollama Docker 镜像。根据您的网络速度,这可能需要一些时间。

步骤 2:运行 Ollama Docker 容器

拉取镜像后,您可以运行 Ollama 容器。我们建议使用 --name 参数为容器指定一个易于识别的名称(例如 ollama-server),并使用 -v 参数挂载一个卷,以便模型的下载和数据持久化。此外,您需要通过 -p 参数将容器的 11434 端口映射到主机的相同端口,这是 Ollama 服务的默认端口。

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

命令解释:

  • -d:在后台运行容器(detached mode)。
  • --name ollama-server:为容器指定名称 ollama-server
  • -p 11434:11434:将主机的 11434 端口映射到容器的 11434 端口。
  • -v ollama_data:/root/.ollama:创建一个名为 ollama_data 的 Docker 卷,并将其挂载到容器内部的 /root/.ollama 目录。这将确保您下载的模型和任何其他 Ollama 数据在容器重启或删除后仍然存在。
  • ollama/ollama:要运行的 Docker 镜像名称。

您可以运行 docker ps 来确认容器是否正在运行:

bash
docker ps

您应该会看到 ollama-server 容器及其状态。

步骤 3:与 Ollama 容器交互 (下载和运行模型)

一旦 Ollama 容器运行起来,您就可以通过多种方式与之交互:

3.1. 从容器内部交互 (通过 docker exec)

这是最直接的方式,您可以进入运行中的 Ollama 容器,并在其中直接使用 ollama CLI 工具。

首先,进入容器的 shell:

bash
docker exec -it ollama-server ollama bash

现在您已经进入了容器内部。您可以像在本地安装 Ollama 一样使用 ollama 命令。

下载模型示例:

bash
ollama pull llama2

运行模型示例:

bash
ollama run llama2

完成交互后,键入 exit 退出容器 shell。

3.2. 从主机通过 Docker 端口映射交互 (外部应用)

由于您已将容器的 11434 端口映射到主机,因此您可以在主机上或通过网络连接到 Ollama 服务。这对于希望通过 API 与 Ollama 集成的应用程序非常有用。

例如,您可以使用 curl 命令从主机检查 Ollama 服务是否正在运行:

bash
curl http://localhost:11434/api/tags

如果 Ollama 正常运行,您将看到已安装模型的 JSON 列表(如果尚未安装模型,则列表为空)。

步骤 4:访问 Ollama API

Ollama 提供了 REST API,允许您从其他应用程序(如 Python 脚本、Web 应用等)进行程序化交互。通过 Docker 端口映射,您的应用程序可以直接通过 http://localhost:11434 访问 Ollama API。

例如,一个简单的 Python 脚本可以通过 requests 库调用 Ollama API:

“`python
import requests

url = “http://localhost:11434/api/generate”
headers = {“Content-Type”: “application/json”}
data = {
“model”: “llama2”,
“prompt”: “Why is the sky blue?”,
“stream”: False
}

try:
response = requests.post(url, headers=headers, json=data)
response.raise_for_status() # Raise an HTTPError for bad responses (4xx or 5xx)
result = response.json()
print(result[‘response’])
except requests.exceptions.RequestException as e:
print(f”Error calling Ollama API: {e}”)

“`

注意: 在运行此 Python 示例之前,请确保您已经通过 ollama pull llama2 在容器内部下载了 llama2 模型。

步骤 5:管理 Ollama 容器

以下是一些常用的 Docker 命令,用于管理您的 Ollama 容器:

  • 停止容器
    bash
    docker stop ollama-server

  • 启动容器
    bash
    docker start ollama-server

  • 重启容器
    bash
    docker restart ollama-server

  • 删除容器
    bash
    docker rm ollama-server

    注意: 删除容器不会删除关联的 ollama_data 卷。如果需要,您也需要单独删除卷:docker volume rm ollama_data

  • 查看容器日志
    bash
    docker logs ollama-server

结论

通过 Docker 在本地运行 Ollama,您获得了一个灵活、可移植且强大的平台来探索和利用大型语言模型。无论是进行本地开发、测试还是仅仅是个人学习,这种设置都能提供极大的便利。遵循本指南,您应该能够轻松地启动您的 Ollama Docker 环境,并开始您的 LLM 之旅。

祝您使用愉快!
“`

滚动至顶部