# Docker Setup for NVIDIA GPUs This directory contains Docker configuration files for running LLaMA Factory with NVIDIA GPU support. ## Prerequisites ### Linux-specific Requirements Before running the Docker container with GPU support, you need to install the following packages: 1. **Docker**: The container runtime ```bash # Ubuntu/Debian sudo apt-get update sudo apt-get install docker.io # Or install Docker Engine from the official repository: # https://docs.docker.com/engine/install/ ``` 2. **Docker Compose** (if using the docker-compose method): ```bash # Ubuntu/Debian sudo apt-get install docker-compose # Or install the latest version: # https://docs.docker.com/compose/install/ ``` 3. **NVIDIA Container Toolkit** (required for GPU support): ```bash # Add the NVIDIA GPG key and repository distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list # Install nvidia-container-toolkit sudo apt-get update sudo apt-get install -y nvidia-container-toolkit # Restart Docker to apply changes sudo systemctl restart docker ``` **Note**: Without `nvidia-container-toolkit`, the Docker container will not be able to access your NVIDIA GPU. ### Verify GPU Access After installation, verify that Docker can access your GPU: ```bash sudo docker run --rm --gpus all nvidia/cuda:12.4.0-base-ubuntu22.04 nvidia-smi ``` If successful, you should see your GPU information displayed. ## Usage ### Using Docker Compose (Recommended) ```bash cd docker/docker-cuda/ docker compose up -d docker compose exec llamafactory bash ``` ### Using Docker Run ```bash # Build the image docker build -f ./docker/docker-cuda/Dockerfile \ --build-arg PIP_INDEX=https://pypi.org/simple \ --build-arg EXTRAS=metrics \ -t llamafactory:latest . # Run the container docker run -dit --ipc=host --gpus=all \ -p 7860:7860 \ -p 8000:8000 \ --name llamafactory \ llamafactory:latest # Enter the container docker exec -it llamafactory bash ``` ## Troubleshooting ### GPU Not Detected If your GPU is not detected inside the container: 1. Ensure `nvidia-container-toolkit` is installed 2. Check that the Docker daemon has been restarted after installation 3. Verify your NVIDIA drivers are properly installed: `nvidia-smi` 4. Check Docker GPU support: `docker run --rm --gpus all ubuntu nvidia-smi` ### Permission Denied If you get permission errors, ensure your user is in the docker group: ```bash sudo usermod -aG docker $USER # Log out and back in for changes to take effect ``` ## Additional Notes - The default image is built on Ubuntu 22.04 (x86_64), CUDA 12.4, Python 3.11, PyTorch 2.6.0, and Flash-attn 2.7.4 - For different CUDA versions, you may need to adjust the base image in the Dockerfile - Make sure your NVIDIA driver version is compatible with the CUDA version used in the Docker image