====== Linux + IA 2025/05/25 ======
===== Docker =====
* Scrip de instalación:
* wget -c https://nextcloud.openit.dev/s/6rBskz35qHgkDAN/download/docker-install.sh
chmod u+x docker-install.sh
sudo ./docker-install.sh
* Dejar descargando el image OpenWebUI
* docker pull openwebui/open-webui:latest
===== Docker Model Runner (DMR) =====
* Instalación Ubuntu/Debian
* sudo apt-get update
sudo apt-get install docker-model-plugin
* Verifica la instalación:
* docker model version
==== Maquina virtual o sin GPU ====
* Para asegurar que DMR use solo CPU y no intente acceder a GPUs:
* docker model install-runner --gpu none
* Listar modelos
* docker model search ai
* Descargar modelo
* docker model pull ai/smollm2
* Ejecutar el Modelo
* docker model run ai/smollm2 "Escribe una función en Python que calcule el factorial de un número"
==== Maquina con GPU ====
* nvidia tools
*
# Agregar el repositorio y la clave GPG de NVIDIA
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
# Instalar el toolkit
sudo apt update
sudo apt install -y nvidia-container-toolkit
* Configurar
* # Configurar el runtime de NVIDIA
sudo nvidia-ctk runtime configure --runtime=docker
# Reiniciar Docker para aplicar los cambios
sudo systemctl restart docker
docker model install-runner --backend vllm --gpu cuda
docker model status
* Verificación
* docker run --rm --gpus all nvidia/cuda:12.2.2-base-ubuntu22.04 nvidia-smi
* Descargar modelo:
* docker model pull ai/mistral
docker model install-runner --gpu auto
docker model run ai/mistral "Escribe una función en Python que calcule el factorial de un número"
===== OpenWeb UI + (DMR) =====
* Ejecución simple
* docker run -d -p 3000:8080 --name open-webui openwebui/open-webui
* Verificar si ya levanto el contenedor este demorara porque tiene que descargar 30 files:
* docker logs -f open-webui
* Ingresar al IP http://192.168.56.103:3000
* Cambio manual al servidor http://172.17.0.1:12434
* Al finalizar detener y borrar el contenedor
*
docker ps
docker stop open-webui
docker rm open-webui
* Con docker compose
* Crear al carpeta openwebui
* mkdir openwebui && cd openwebui
* Crear el archivo docker-compose.yml
* nano docker-compose.yml
* Copiar el contenido de:
services:
open-webui:
image: openwebui/open-webui:latest
container_name: open-webui
restart: unless-stopped
ports:
- "3000:8080"
volumes:
- open-webui-data:/app/backend/data
environment:
- DMR_BASE_URL=http://172.17.0.1:12434
- OLLAMA_BASE_URL=http://172.17.0.1:12434
- HF_HUB_OFFLINE=1 # ← Impide descargas externas
- HF_TOKEN= # ← Vacío para no autenticar
extra_hosts:
- "host.docker.internal:host-gateway"
networks:
- dmr-network
networks:
dmr-network:
driver: bridge
volumes:
open-webui-data:
* Ejecutar:
* docker compose up -d
* Ingresamos directo al http://192.168.56.103:3000
* Logs docker compose logs
* Borrado completo: docker compose down -v