====== 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