Skip to content

Instantly share code, notes, and snippets.

@EvilFreelancer
Last active October 19, 2024 12:43
Show Gist options
  • Save EvilFreelancer/edda81fd00c1bbadc728d99aeac0a948 to your computer and use it in GitHub Desktop.
Save EvilFreelancer/edda81fd00c1bbadc728d99aeac0a948 to your computer and use it in GitHub Desktop.
Алгоритм переключения ollama с системы на Docker-контейнер

Деинсталяция ollama

Для начала выполним остановку сервиса ollama и удалим конфирацию:

sudo systemctl stop ollama
sudo systemctl disable ollama
sudo rm /etc/systemd/system/ollama.service

Далее, удалим бинарник ollama:

sudo rm $(which ollama)

Удаляем пользователя ollama и группу ollama:

sudo userdel ollama
sudo groupdel ollama

Все модели, которые вы скачали из библиотеки ollama или создали врунчю хранятся в /usr/share/ollama, запомним эту директорию, вернёмся к ней чуть позже.

Подготовка docker-compose.yml с ollama

Создадим пустую директорию, скажем docker-ollama и в ней файл docker-compose.yml:

mkdir docker-ollama
cd docker-ollama
touch docker-compose.yml

Заполним его следующим содержимым:

version: "3.9"

x-shared-logs: &shared-logs
  logging:
    driver: "json-file"
    options:
      max-size: "10k"

services:

  ollama:
    image: ollama/ollama:0.4.0-rc1
    restart: unless-stopped
    volumes:
      - ./ollama_data:/root
    environment:
      OLLAMA_KEEP_ALIVE: 60 minutes
      OLLAMA_FLASH_ATTENTION: 1
    ports:
      - "11434:11434"
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [ gpu ]
    <<: *shared-logs

Можно явно указать версии через image директиву, например ollama/ollama:0.4.0-rc1 говорит нам о том, что необходимо взять контейнер с тегом 0.4.0-rc1 и юзать его в дальнейшем.

Далее перенесём папку /usr/share/ollama в текущую директорию и поменяем имя на ollama_data:

mv /usr/share/ollama ./ollama_data

Запуск композиции

Скачаем образ и запустим композицию:

docker-compose pull
docker-compose up -d

Для обновления ollama нужно будет зайти через редактор и подправить тег у image, далее выполнить pull, up -d и вот вы уже на новой версии.

Проверим работоспособность

Получим список доступных моделей:

curl http://gpu01:11434/api/tags

Попробуем выполнить генерацию через llama3.1:8b:

curl http://gpu01:11434/api/generate -d '{
  "model": "llama3.1:8b",
  "stream": false,
  "prompt": "Почему трава зелёная?"
}'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment