Posted on

使用Docker來運行Ollama

為什麼要使用Docker來運行Ollama

使用 Docker 來運行 Ollama 可以提供許多優點,包括簡化設置、可移植性、隔離、資源管理、可擴展性和可重複性。可以把Ollama變成一個API服務,提供其他的應用程式直接使用API的方式來呼叫Ollama,並運行不同的本地端模型。而把Ollama變為一個Docker服務,更可以在多台機器上分發 Ollama 模型。這對於需要在高可用性環境中運行 Ollama 的情況非常有用。

以下為Ollama的API手冊

https://github.com/ollama/ollama/blob/main/docs/api.md

利用Docker來運行服務的狀況

以下是一些使用 Docker 運行 Ollama 的具體示例:

  • 在您的本地機器上開發和測試 Ollama 模型: Docker 允許您在本地機器上設置一個隔離的環境來開發和測試 Ollama 模型。這可以幫助您確保模型在部署到生產環境之前按預期工作。
  • 在生產環境中部署 Ollama 模型: Docker 可用於在生產環境中部署 Ollama 模型。您可以使用 Docker 映像來創建和管理 Ollama 服務器,這些服務器可以提供對模型的 API 訪問。
  • 在多台機器上分發 Ollama 模型: Docker 可用於在多台機器上分發 Ollama 模型。這對於需要在高可用性環境中運行 Ollama 的情況非常有用。

其中最重要好處的會是第三點,當我們把本地端LLM視為一個API服務,便可以對此服務做平衡負載,並根據使用量來增加機器,擴張服務的Scale,讓整體服務具備有良好的擴充性。

安裝Ollama Docker image

官方網站: https://hub.docker.com/r/ollama/ollama

Ollama 使得在本地啟動和運行大型語言模型變得容易。

僅 CPU

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

Nvidia GPU 

安裝 NVIDIA Container Toolkit⁠.

使用 Apt 安裝

Configure the repository 配置存儲庫

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
sudo apt-get update

安裝 NVIDIA Container Toolkit 軟體包

sudo apt-get install -y nvidia-container-toolkit

使用 Yum 或 Dnf 安裝

配置存儲庫

curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo \
    | sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo

安裝 NVIDIA Container Toolkit 軟體包

sudo yum install -y nvidia-container-toolkit

配置 Docker 以使用 Nvidia 驅動程式

sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

啟動容器

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

AMD GPU

要使用帶有 AMD GPU 的 Docker 執行 Llama,請使用標籤 rocm 和以下命令:

docker run -d --device /dev/kfd --device /dev/dri -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama:rocm

在本地運行模型

docker exec -it ollama ollama run llama3

延伸閱讀