Perfeito! 🚀 Vou te mostrar um exemplo prático usando o LM Studio ou frameworks equivalentes (ex: Ollama, text-generation-webui) dentro do Docker.
🔹 Opção simples com Ollama (mais direto)
O Ollama é bem leve, já baixa e gerencia os modelos (LLaMA, Mistral, Gemma, etc).
1. Dockerfile
Crie Dockerfile
:
FROM ubuntu:22.04
# Evita prompts
ENV DEBIAN_FRONTEND=noninteractive
# Dependências
RUN apt-get update && apt-get install -y \
curl \
wget \
git \
build-essential \
&& rm -rf /var/lib/apt/lists/*
# Instala Ollama
RUN curl -fsSL https://ollama.com/install.sh | sh
# Porta do servidor Ollama
EXPOSE 11434
# Starta o servidor Ollama
CMD ["ollama", "serve"]
2. Build da imagem
docker build -t ollama-docker .
3. Rodar o container
docker run -d \
--name ollama \
-p 11434:11434 \
ollama-docker
4. Baixar e rodar um modelo já configurado
Por exemplo, o Mistral:
docker exec -it ollama ollama pull mistral
E para rodar:
docker exec -it ollama ollama run mistral
5. Usar via API REST
Agora a API já está exposta em http://localhost:11434/api/generate
Exemplo de requisição:
curl http://localhost:11434/api/generate -d '{
"model": "mistral",
"prompt": "Me explique como funciona um container Docker"
}'
🔹 Opção avançada com text-generation-webui
Se quiser uma UI no navegador (webchat estilo LMStudio):
version: "3.9"
services:
textgen:
image: ghcr.io/oobabooga/text-generation-webui:latest
ports:
- "7860:7860"
volumes:
- ./models:/app/models
- ./data:/app/data
command: --listen --listen-host 0.0.0.0
Depois:
docker compose up -d
Acesse: http://SEU_SERVIDOR:7860
Vou te montar a estrutura de arquivos pronta para você subir os modelos em Docker. Vou considerar a forma mais simples e eficiente: um único Ollama Server rodando, que gerencia vários modelos. Assim você não precisa abrir várias portas, só escolher o modelo na hora da chamada.
📂 Estrutura de arquivos
llms/
├── docker-compose.yml
└── README.md
🔹 Arquivo docker-compose.yml
version: "3.9"
services:
ollama:
image: ollama/ollama:latest
container_name: ollama
restart: always
ports:
- "11434:11434"
volumes:
- ./ollama:/root/.ollama
🔹 Arquivo README.md
(explicação)
# Rodar LLMs com Ollama no Docker
Este setup roda o **Ollama** em Docker, permitindo carregar e executar modelos de IA (LLMs).
## 🚀 Instalação
1. Suba o container:
```bash
docker compose up -d
- Baixe os modelos que deseja usar:
docker exec -it ollama ollama pull mistral docker exec -it ollama ollama pull gemma:7b docker exec -it ollama ollama pull llama3:8b
- Teste um modelo:
docker exec -it ollama ollama run mistral
- Faça requisições via API REST:
curl http://localhost:11434/api/generate -d '{ "model": "mistral", "prompt": "Explique de forma simples o que é BGP" }'
- Para trocar de modelo, altere o campo
"model"
:"mistral"
"gemma:7b"
"llama3:8b"
📂 Volumes
A pasta ./ollama
no host armazena:
- Modelos baixados
- Configurações
- Cache
Assim, mesmo que o container seja removido, você não perde nada.
---
# 🔧 Instalação passo a passo
1. Crie a pasta:
```bash
mkdir llms && cd llms
- Crie os arquivos:
nano docker-compose.yml # cole o conteúdo e salve nano README.md # cole o conteúdo e salve
- Suba o container:
docker compose up -d
- Baixe os modelos desejados:
docker exec -it ollama ollama pull mistral docker exec -it ollama ollama pull gemma:7b docker exec -it ollama ollama pull llama3:8b
- Teste um modelo:
docker exec -it ollama ollama run mistral
👉 Com isso, você já tem Mistral, Gemma e LLaMA rodando no mesmo servidor, escolhendo qual usar na hora da chamada.